一、當前文件名
我們知道Vim有48個寄存器,其中%只讀寄存器中保存著當前文件路徑。 例如在/home/harttle/
下打開src/main.cpp
,我們打印%的值:
:echo @% " 文件路徑 src/main.cpp
通過關鍵字展開可得到絕對路徑、所在目錄等信息:
:echo expand('%:t') " 文件名 main.cpp:echo expand('%:p') " 絕對路徑 /home/harttle/src/main.cpp:echo expand('%:p:h') " 所在目錄 /home/harttle/src:echo expand('%:p:h:t') " 所在目錄名 src
:p理解為path, :h理解為head, :t理解為tail??蓞⒖?help expand。
二、利用 % 進行文件操作
備份當前文件main.cpp
到main.cpp.bak
:
:w % %.bak
打開在同目錄下的main.h
:
:e %:p:h/main.h
插入當前文件名:
"%p
拷貝當前文件名到剪切板,當然你可以把它做成快捷鍵:
:let @*=expand("%:t")
三、直接打開目錄
Harttle發現Vim不僅可以打開文件,而且可以打開目錄。 直接vim /home/harttle
即可打開,也可以在vim打開目錄:
:e ./harttle " 編輯該目錄:Explore . " 瀏覽該目錄:Sexplore . " 在水平分割窗口中瀏覽該目錄:Vexplore . " 在垂直分割窗口中瀏覽該目錄
打開目錄后Enter進入下一層,-返回上一層,R重命名,D刪除。
這里的水平分割是指上下兩個窗口,垂直分割為左右兩個窗口。 貌似TMUX和VIM對水平和垂直的定義恰恰相反,Harttle也是醉了。
四、萬能方法
如果你找不到合適的Vim命令,隨時都可以在Vim中直接執行Bash命令。 只需要在Ex模式中添加前導的!字符,例如:
# 列出文件:!ls# 刪除文件:!rm foo.txt
此外,NERDTree插件可以在Vim中顯示文件目錄樹。 當然也集成了文件和目錄操作,需要熟悉其快捷鍵。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能有所幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選