Vim引线快捷方式在<;之后停止执行;CR>;
我有一个文件Vim引线快捷方式在<;之后停止执行;CR>;,vim,Vim,我有一个文件~/.vim剪贴板,其中我配置了其他应用程序来回显文件的完整路径,因此让我们假设~/.vim剪贴板的内容是: /home/user/example.txt 在vim中,我希望执行一个引线快捷方式,以便: 在新的vim选项卡中打开~/.vim剪贴板文件 对剪贴板文件中的文件名执行vim命令gf,并且 然后,该文件在此vim选项卡中打开 我的.vimrc中有此映射: nnoremap <F8> gf nnoremap <leader>y :tabnew ~/.v
~/.vim剪贴板
,其中我配置了其他应用程序来回显文件的完整路径,因此让我们假设~/.vim剪贴板
的内容是:
/home/user/example.txt
在vim中,我希望执行一个引线快捷方式,以便:
~/.vim剪贴板
文件gf
,并且.vimrc
中有此映射:
nnoremap <F8> gf
nnoremap <leader>y :tabnew ~/.vim-clipboard<CR><F8>
nnoremap gf
nnoremap y:tabnew~/.vim剪贴板
不幸的是,y
映射在该行上的
之后停止执行。我尝试了各种方法来让它工作,包括直接使用gf
而不是
映射,但我似乎无法让它工作,而且我似乎在SO或interwebs上找不到任何有用的东西
我是一个中级vim用户,所以如果在vimscript或其他东西中有一个简单的解决方案,请原谅我。感谢您的帮助,谢谢 如果需要
映射中的
映射,则需要使用递归映射。将nnoremap
(表示非递归映射)更改为nmap
:
nmap <leader>y :tabnew ~/.vim-clipboard<CR><F8>
nmap y:tabnew~/.vim剪贴板
递归映射记录在
:help Recursive_mapping
中,作为建议,为避免.vim剪贴板文件出现在缓冲区列表中,您还可以尝试:
nnoremap <leader>y :execute 'tabnew ' . system('cat ~/vim-clipboard')
nnoremap y:执行'tabnew'。系统(“cat~/vim剪贴板”)