From 6f6aebf6db9ffa0fde64ebac3df7cd01f9a9db27 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Thu, 15 Dec 2022 21:12:28 +0100 Subject: vim: fix gf handling of relative links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit they should resolve relative to the file not vim's cwd Signed-off-by: Robert Günzler --- .vim/init.lua | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to '.vim') diff --git a/.vim/init.lua b/.vim/init.lua index daa991f..3b5bf52 100644 --- a/.vim/init.lua +++ b/.vim/init.lua @@ -155,8 +155,16 @@ vim.keymap.set('n', '', [[ :normal za ]], {silent = true}) -- vim.keymap.set('n', '', [[ :exe 'normal za' | IndentBlanklineRefresh ]], {silent = true}) -- swap gf and gF -vim.keymap.set('n', 'gf', [[ :e ]]) -vim.keymap.set('v', 'gf', [[ :e ]]) +-- vim.keymap.set('n', 'gf', [[ :e ]]) +-- vim.keymap.set('v', 'gf', [[ :e ]]) +vim.keymap.set({'n', 'v'}, 'gf', function(a) + local Path = require('plenary.path') + local cfile = Path:new(vim.fn.expand('')) + if not cfile:is_absolute() then + cfile = Path:new(vim.fn.expand('%:p:h'), cfile):normalize() + end + vim.cmd.edit(cfile) +end, {desc='extends `:e ` with path normalization'}) vim.keymap.set('n', '{', [[ {zz ]]) vim.keymap.set('n', '}', [[ }zz ]]) @@ -174,7 +182,6 @@ vim.keymap.set('v', 'T', local misc = require('internal.misc') vim.keymap.set('n', 'gd', function() misc.open_under_cursor(nil, true) end, {desc='open under cursor'}) --- vim.keymap.set('n', 'gf', function() misc.file_under_cursor(function(s) vim.cmd('edit ' .. s) end) end) vim.keymap.set('n', 'gx', function() misc.open_under_cursor('url-launcher') end, {desc='url-launcher'}) vim.keymap.set('n', 'gu', function() misc.open_under_cursor('url-launcher') end, {desc='url-launcher'}) -- vim.keymap.set('n', 'gs', function() misc.word_under_cursor(function(s) vim.fn.feedkeys(':%s/' .. s .. '//g'); cmd [[ call feedkeys("\\") ]] end) end) -- cgit 1.4.1