您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“linux中怎么用一些超酷的功能使Vim變得更強大”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“linux中怎么用一些超酷的功能使Vim變得更強大”這篇文章吧。
Vim 是每個 Linux 發行版]中不可或缺的一部分,也是 Linux 用戶最常用的工具(當然是基于終端的)。至少,這個說法對我來說是成立的。人們可能會在利用什么工具進行程序設計更好方面產生爭議,的確 Vim 可能不是一個好的選擇,因為有很多不同的 IDE 或其它類似于 Sublime Text 3,Atom 等使程序設計變得更加容易的成熟的文本編輯器。
但我認為,Vim 應該從一開始就以我們想要的方式運作,而其它編輯器讓我們按照已經設計好的方式工作,實際上不是我們想要的工作方式。我不會過多地談論其它編輯器,因為我沒有過多地使用過它們(我對 Vim 情有獨鐘)。
不管怎樣,讓我們用 Vim 來做一些事情吧,它完全可以勝任。
考慮一個場景,當我們使用 Vim 設計 C++ 代碼并需要編譯和運行它時,該怎么做呢。
(a). 我們通過 Ctrl + Z
返回到終端,或者利用 :wq
保存并退出。
(b). 但是任務還沒有結束,接下來需要在終端上輸入類似于 g++ fileName.cxx
的命令進行編譯。
(c). 接下來需要鍵入 ./a.out
執行它。
為了讓我們的 C++ 代碼在 shell 中運行,需要做很多事情。但這似乎并不是利用 Vim 操作的方法( Vim 總是傾向于把幾乎所有操作方法利用一兩個按鍵實現)。那么,做這些事情的 Vim 的方式究竟是什么?
Vim 不僅僅是一個文本編輯器,它是一種編輯文本的編程語言。這種幫助我們擴展 Vim 功能的編程語言是 “VimScript”(LCTT 譯注: Vim 腳本)。
因此,在 VimScript 的幫助下,我們可以只需一個按鍵輕松地將編譯和運行代碼的任務自動化。
create functions in vim .vimrc
以上是在我的 .vimrc
配置文件里創建的一個名為 CPP()
函數的片段。
在 VimScript 中創建函數的語法非常簡單。它以關鍵字 func
開頭,然后是函數名(在 VimScript 中函數名必須以大寫字母開頭,否則 Vim 將提示錯誤)。在函數的結尾用關鍵詞 endfunc
。
在函數的主體中,可以看到 exec
語句,無論您在 exec
關鍵字之后寫什么,都會在 Vim 的命令模式上執行(記住,就是在 Vim 窗口的底部以 :
開始的命令)。現在,傳遞給 exec
的字符串是(LCTT 譯注::!clear && g++ % && ./a.out
) -
vim functions commands & symbols
當這個函數被調用時,它首先清除終端屏幕,因此只能看到輸出,接著執行 g++
處理你工作的文件,然后運行由前一步編譯而形成的 a.out
文件。
我將語句 call CPP()
映射到鍵組合 Ctrl+r
,以便我現在可以按 Ctrl+r
來執行我的 C++ 代碼,無需手動輸入 :call CPP()
,然后按 Enter
鍵。
我們終于找到了 Vim 方式的操作方法。現在,你只需按一個(組合)鍵,你編寫的 C++ 代碼就輸出在你的屏幕上,你不需要鍵入所有冗長的命令了。這也節省了你的時間。
我們也可以為其他語言實現這類功能。
create function in vim for python
對于Python:您可以按下 Ctrl+e
解釋執行您的代碼。
create function in vim for java
對于Java:您現在可以按下 Ctrl+j
,它將首先編譯您的 Java 代碼,然后執行您的 Java 類文件并顯示輸出。
所以,這就是如何在 Vim 中操作的方法。現在,我們來看看如何在 Vim 中實現所有這些。我們可以直接在 Vim 中使用這些代碼片段,而另一種方法是使用 Vim 中的自動命令 autocmd
。autocmd
的優點是這些命令無需用戶調用,它們在用戶所提供的任何特定條件下自動執行。
我想用 autocmd 實現這個,而不是對每種語言使用不同的映射,執行不同程序設計語言編譯出的代碼。
autocmd in vimrc
在這里做的是,為所有的定義了執行相應文件類型代碼的函數編寫了自動命令。
會發生什么?當我打開任何上述提到的文件類型的緩沖區, Vim 會自動將 Ctrl + r
映射到函數調用,而 <CR>
表示回車鍵,這樣就不需要每完成一個獨立的任務就按一次回車鍵了。
為了實現這個功能,您只需將函數片段添加到 .vimrc
文件中,然后將所有這些 autocmd
也一并添加進去。這樣,當您下一次打開 Vim 時,Vim 將擁有所有相應的功能來執行所有具有相同綁定鍵的代碼。
以上是“linux中怎么用一些超酷的功能使Vim變得更強大”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。