aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua21
1 files changed, 17 insertions, 4 deletions
diff --git a/init.lua b/init.lua
index 7fc832e..5ae938f 100644
--- a/init.lua
+++ b/init.lua
@@ -1,8 +1,21 @@
require "config"
require "pi.globals"
-vim.api.nvim_create_autocmd({ "BufReadPost" }, {
- pattern = { "*" },
- callback = function()
- vim.api.nvim_exec2('silent! normal! g`"zv', {})
+
+-- Restaurar la última posición del cursor al abrir un archivo (reemplaza vim-lastplace)
+vim.api.nvim_create_autocmd("BufReadPost", {
+ group = vim.api.nvim_create_augroup("last_place", { clear = true }),
+ callback = function(args)
+ local exclude_ft = { "gitcommit", "gitrebase", "svn", "hgcommit" }
+ local buf = args.buf
+ if vim.tbl_contains(exclude_ft, vim.bo[buf].filetype) or vim.b[buf].last_place_done then
+ return
+ end
+ vim.b[buf].last_place_done = true
+ local mark = vim.api.nvim_buf_get_mark(buf, '"')
+ local lcount = vim.api.nvim_buf_line_count(buf)
+ if mark[1] > 0 and mark[1] <= lcount then
+ pcall(vim.api.nvim_win_set_cursor, 0, mark)
+ vim.api.nvim_exec2("silent! normal! zv", {})
+ end
end,
})