首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vim: FileGroup的执行命令

vim: FileGroup的执行命令
EN

Unix & Linux用户
提问于 2018-12-05 17:03:00
回答 1查看 37关注 0票数 -1

每当我打开Golang文件时,我都会尝试打开NERDtree:

代码语言:javascript
复制
au FileType go exe 'NERDTree'

但是,当我从另一个目录打开一个Go文件时,它仍然显示当前目录。我可以将目录作为参数传递,但不知道如何获得要打开的文件的目录。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-12-11 12:51:09

可以通过特殊的%名称(:help cmdline-special)访问当前文件名;您可以将其修改为完整的路径,然后切断文件名本身以获得路径:%:p:h,cp。:help filename-modifiers

这可以直接传递给内置命令,比如:edit,不幸的是不能传递给:NERDTree。为此,我们必须显式地expand()它,然后通过:execute将结果插入到命令行中(在您的问题中,这是不必要的):

代码语言:javascript
复制
autocmd FileType go execute 'NERDTree' expand('%:p:h')

或者,您也可以只使用:set autochdir,因此Vim将自动切换目录。

autocmd FileType不能很好地扩展

我建议将任何设置、映射和特定于文件类型的自动cp放入~/.vim/ftplugin/{filetype}_whatever.vim (或{filetype}/whatever.vim;cp)中。:help ftplugin-name),而不是定义大量的:autocmd FileType {filetype};它更干净,规模更大;不过,它要求您拥有:filetype plugin on。覆盖默认文件类型插件中的内容的设置应该进入~/.vim/after/ftplugin/{filetype}.vim

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/486196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档