lastplace without the plugin
This commit is contained in:
parent
6c323c6357
commit
cadc945a1c
3 changed files with 49 additions and 7 deletions
|
@ -2,6 +2,7 @@ require("plugin_specs")
|
||||||
|
|
||||||
local keymap = vim.keymap
|
local keymap = vim.keymap
|
||||||
local opt = vim.opt
|
local opt = vim.opt
|
||||||
|
local api = vim.api
|
||||||
|
|
||||||
vim.g.loaded_netrw = 1
|
vim.g.loaded_netrw = 1
|
||||||
vim.g.loaded_netrwPlugin = 1
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
@ -38,7 +39,7 @@ opt.clipboard:append("unnamedplus")
|
||||||
vim.cmd.colorscheme("iceberg")
|
vim.cmd.colorscheme("iceberg")
|
||||||
|
|
||||||
-- restore terminal cursor on exit
|
-- restore terminal cursor on exit
|
||||||
vim.api.nvim_create_autocmd("VimLeave", {
|
api.nvim_create_autocmd("VimLeave", {
|
||||||
callback = function()
|
callback = function()
|
||||||
opt.guicursor = "a:ver25-blinkon500-blinkon500"
|
opt.guicursor = "a:ver25-blinkon500-blinkon500"
|
||||||
end,
|
end,
|
||||||
|
@ -47,6 +48,50 @@ vim.api.nvim_create_autocmd("VimLeave", {
|
||||||
-- blinking cursor in insert mode
|
-- blinking cursor in insert mode
|
||||||
opt.guicursor = "i-ci-ve:ver25-blinkon500-blinkon500"
|
opt.guicursor = "i-ci-ve:ver25-blinkon500-blinkon500"
|
||||||
|
|
||||||
|
-- copied from https://github.com/jdhao/nvim-config/blob/c7fb090e4ce94e72414169a247ac62f049d6b03b/lua/custom-autocmd.lua#L138
|
||||||
|
-- Return to last cursor position when opening a file, note that here we cannot use BufReadPost
|
||||||
|
-- as event. It seems that when BufReadPost is triggered, FileType event is still not run.
|
||||||
|
-- So the filetype for this buffer is empty string.
|
||||||
|
api.nvim_create_autocmd("FileType", {
|
||||||
|
group = api.nvim_create_augroup("resume_cursor_position", { clear = true }),
|
||||||
|
pattern = "*",
|
||||||
|
callback = function(ev)
|
||||||
|
local mark_pos = api.nvim_buf_get_mark(ev.buf, '"')
|
||||||
|
local last_cursor_line = mark_pos[1]
|
||||||
|
|
||||||
|
local max_line = vim.fn.line("$")
|
||||||
|
local buf_filetype = api.nvim_get_option_value("filetype", { buf = ev.buf })
|
||||||
|
local buftype = api.nvim_get_option_value("buftype", { buf = ev.buf })
|
||||||
|
|
||||||
|
-- only handle normal files
|
||||||
|
if buf_filetype == "" or buftype ~= "" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Only resume last cursor position when there is no go-to-line command (something like '+23').
|
||||||
|
if vim.fn.match(vim.v.argv, [[\v^\+(\d){1,}$]]) ~= -1 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if last_cursor_line > 1 and last_cursor_line <= max_line then
|
||||||
|
-- vim.print(string.format("mark_pos: %s", vim.inspect(mark_pos)))
|
||||||
|
-- it seems that without vim.schedule, the cursor position can not be set correctly
|
||||||
|
vim.schedule(function()
|
||||||
|
local status, result = pcall(api.nvim_win_set_cursor, 0, mark_pos)
|
||||||
|
if not status then
|
||||||
|
api.nvim_err_writeln(
|
||||||
|
string.format("Failed to resume cursor position. Context %s, error: %s", vim.inspect(ev), result)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
-- the following two ways also seem to work,
|
||||||
|
-- ref: https://www.reddit.com/r/neovim/comments/104lc26/how_can_i_press_escape_key_using_lua/
|
||||||
|
-- vim.api.nvim_feedkeys("g`\"", "n", true)
|
||||||
|
-- vim.fn.execute("normal! g`\"")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
keymap.set("n", "<space>s", require("nvim-tree.api").tree.toggle, {
|
keymap.set("n", "<space>s", require("nvim-tree.api").tree.toggle, {
|
||||||
desc = "toggle nvim-tree",
|
desc = "toggle nvim-tree",
|
||||||
silent = true,
|
silent = true,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
"dressing.nvim": { "branch": "master", "commit": "3a45525bb182730fe462325c99395529308f431e" },
|
"dressing.nvim": { "branch": "master", "commit": "3a45525bb182730fe462325c99395529308f431e" },
|
||||||
"fzf-lua": { "branch": "main", "commit": "b27cb583c3185cc9a91f0bcb173b55ae461101c3" },
|
"fzf-lua": { "branch": "main", "commit": "c773fabeec3f58b2da0fbad558f6420795a1685e" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
||||||
"hop.nvim": { "branch": "master", "commit": "08ddca799089ab96a6d1763db0b8adc5320bf050" },
|
"hop.nvim": { "branch": "master", "commit": "08ddca799089ab96a6d1763db0b8adc5320bf050" },
|
||||||
"iceberg.vim": { "branch": "master", "commit": "23835d5ed696436f716cbfdb56a93a7850fe3b18" },
|
"iceberg.vim": { "branch": "master", "commit": "23835d5ed696436f716cbfdb56a93a7850fe3b18" },
|
||||||
|
@ -17,9 +17,8 @@
|
||||||
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
|
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "a8ef5e6e497b3ebeaaf35b939c07c211563b2e05" },
|
"nvim-lspconfig": { "branch": "master", "commit": "a8ef5e6e497b3ebeaaf35b939c07c211563b2e05" },
|
||||||
"nvim-tree.lua": { "branch": "master", "commit": "68fc4c20f5803444277022c681785c5edd11916d" },
|
"nvim-tree.lua": { "branch": "master", "commit": "68fc4c20f5803444277022c681785c5edd11916d" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "6935286b4ee3d938954e446d657eebee71b4d07a" },
|
"nvim-treesitter": { "branch": "master", "commit": "cfbc1c0e0ff63e5b5e37b465b915b95fc2e98cef" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "5740b7382429d20b6ed0bbdb0694185af9507d44" },
|
"nvim-web-devicons": { "branch": "master", "commit": "5740b7382429d20b6ed0bbdb0694185af9507d44" },
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "45d22cf0e1b93476d3b6d362d720412b3d34465c" },
|
"tokyonight.nvim": { "branch": "main", "commit": "45d22cf0e1b93476d3b6d362d720412b3d34465c" },
|
||||||
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" },
|
"vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" }
|
||||||
"vim-lastplace": { "branch": "master", "commit": "e58cb0df716d3c88605ae49db5c4741db8b48aa9" }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,8 +91,6 @@ local plugin_specs = {
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "cocopon/iceberg.vim" },
|
{ "cocopon/iceberg.vim" },
|
||||||
|
|
||||||
{ "farmergreg/vim-lastplace" },
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require("lazy").setup({
|
require("lazy").setup({
|
||||||
|
|
Loading…
Add table
Reference in a new issue