summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2023-01-25 11:08:41 +0100
committerRobert Günzler <r@gnzler.io>2023-03-21 12:35:43 +0100
commitf5b7bbe222edb49feefb2bfa6f49a1b7f8e418a4 (patch)
treef3bcd945eead7a384cc6b8328cd31b45ec0cb151
parent0bfd7c4a60ec32150704e31473b5c9ae0b4098fa (diff)
vim: support file:// urls with gf
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '')
-rw-r--r--.vim/init.lua12
1 files changed, 6 insertions, 6 deletions
diff --git a/.vim/init.lua b/.vim/init.lua
index 26e3bab..f6118c0 100644
--- a/.vim/init.lua
+++ b/.vim/init.lua
@@ -166,13 +166,13 @@ vim.keymap.set('n', 'gB', [[ :bprevious<cr> ]], { silent = true })
 vim.keymap.set('n', '<tab>', [[ :normal za<cr> ]], { silent = true })
 -- vim.keymap.set('n', '<tab>', [[ :exe 'normal za' | IndentBlanklineRefresh<cr> ]], {silent = true})
 
--- swap gf and gF
--- vim.keymap.set('n', 'gf', [[ :e <cfile><cr> ]])
--- vim.keymap.set('v', 'gf', [[ :e <cfile><cr> ]])
-vim.keymap.set({ 'n', 'v' }, 'gf', function(a)
+vim.keymap.set({ 'n', 'v' }, 'gf', function()
   local Path = require('plenary.path')
-  local cfile = Path:new(vim.fn.expand('<cfile>'))
-  if not cfile:is_absolute() then
+  local cfile = vim.fn.expand('<cfile>')
+  if string.sub(cfile, 0, 7) == 'file://' then
+    cfile = string.sub(cfile, 8)
+  end
+  if not Path:new(cfile):is_absolute() then
     cfile = Path:new(vim.fn.expand('%:p:h'), cfile):normalize()
   end
   vim.cmd.edit(cfile)