Vim技巧:如何无需箭头键从当前目录列表打开指定文件
解决Vim中
:e命令在:Ex目录界面打开当前目录文件的问题 我懂你的困扰——当你用:Ex打开当前文件所在的目录浏览器后,想用:e命令直接打开目录里的文件,结果它却跑到Vim启动时的根目录去找,确实挺闹心的。下面给你几个实用的解决办法:
直接用相对路径指定文件
在:Ex界面里,只要在文件名前加上./,就能让:e命令在当前浏览的目录下查找文件,比如::e ./your_file.txt这个方法简单直接,不用记复杂的变量,临时用一次特别方便。
利用当前文件的目录路径缩写
因为你是从当前编辑的文件进入:Ex的,Vim有个内置的路径缩写%:h,它代表当前文件所在的目录。你可以这样写::e %:h/your_file.txt这个命令会始终指向你最初打开的那个文件的目录,适合需要固定关联原文件所在目录的场景。
临时切换当前窗口的工作目录
如果想让后续的:e命令都默认在当前浏览的目录下操作,可以先执行::lcd %:h这里的
:lcd是local cd的意思,只会改变当前窗口的工作目录,不会影响其他打开的窗口,非常安全。之后再直接用:e your_file.txt就可以直接打开当前目录的文件了。利用netrw的内置变量
当你在:Ex(也就是netrw目录浏览器)里时,Vim会自动设置一个b:netrw_curdir变量,它代表当前浏览器正在显示的目录。哪怕你在:Ex里切换了子目录,用这个变量也能准确指向当前浏览的位置::e b:netrw_curdir/your_file.txt
为什么会出现这个问题?
简单来说,Vim的:e命令默认是相对于全局工作目录(也就是你启动Vim时所在的目录)来查找文件的,而:Ex只是打开一个目录浏览窗口,并不会自动改变全局或局部的工作目录,所以直接用:e filename就会跑到启动目录里找文件啦。
内容的提问来源于stack exchange,提问作者RiffRaffCat
相关产品推荐
相关产品推荐

