Linux使用VIM編輯器的方法
Vim 作為一款功能強大、選項豐富的編輯器,為許多用戶所熱愛。本文介紹了一些在 Vim 中默認未啟用但實際非常有用的選項。雖然可以在每個 Vim 會話中單獨啟用,但為了創(chuàng)建一個開箱即用的高效編輯環(huán)境,還是建議在 Vim 的配置文件中配置這些命令。
技巧:快速提高 vim 使用效率的原則與途徑
vim 是所有 Unix/Linux 操作系統(tǒng)默認配備的編輯器。因其強大的功能和高效的操作,vim 也成為眾多 Unix/Linux 用戶、管理員必須掌握并熟練使用的編輯工具之一。尤其是在沒有圖形界面的情況下,更是離不開 vim。vim 命令非常多、用法極為靈活,掌握起來有一定的難度。本文作者將結(jié)合自己的使用經(jīng)驗,分七個方面著重介紹哪些原則、途徑或命令能快速提高 vim 文件編輯效率,從而達到事半功倍的效果。
引言
Vi 最初是由 Bill Joy 在 1976 年編碼實現(xiàn)的。而 Vim (Vi IMproved) 則是改進的 Vi,由 Bram Moolenaar 在 1991 年開發(fā)并發(fā)布。vim 是所有 Unix/Linux 操作系統(tǒng)默認配備的編輯器。因其強大的功能和高效的操作,vim 也成為眾多 Unix/Linux 用戶、管理員必須掌握并熟練使用的編輯工具之一。尤其是在沒有圖形界面的情況下,更是離不開 vim。vim 命令非常多、用法極為靈活,掌握起來有一定的難度。詳細介紹 vim 使用方法的文章有很多,因而本文就不一一述及 vim 的諸多功能及命令。本文作者將結(jié)合自己的使用經(jīng)驗,分七個方面著重介紹哪些原則、途徑或命令能快速提高 vim 文件編輯效率,從而達到事半功倍的效果。本文述及的途徑或命令均只針對系統(tǒng)默認配置的 vim。關(guān)于 vim 各種定制后的功能不在本文討論范圍之列。(注:本文中提到的所有命令均在 Red Hat Enterprise Linux Server release 6.1 上測試通過。)
Vim 版本的選擇
“工欲善其事,必先利其器”。在 vim 版本的選擇上,原則是“能用 Vim 就不要使用 Vi;能用最新版就不要守著舊版本”。Vim 提供的功能和特性要比 Vi 多得多,如語法加亮著色功能等。就使用效果及效率來說,編輯同樣的文件,使用 Vim 更勝一籌;就版本來說,新版的往往會修復舊版的一些缺陷及不足。這就要求我們在可能的情況下一定要使用最新版的 Vim。
小技巧:
在 Linux 下,如果以 root 用戶登錄系統(tǒng)的話,通過 vi 命令打開的 Vim 編輯器往往只加載最基本的功能,像語法加亮著色的功能基本上沒有。在 root 用戶下使用 Vim 所有功能的技巧是用 vim 命令打開 Vim 編輯器。
開始前的準備
這里所說的選項或配置均位于用戶主目錄中的 Vim 啟動配置文件 .vimrc。 按照下面的說明在 .vimrc 中設(shè)置選項:
(注意:vimrc 文件也用于 Linux 中的全局配置,如 /etc/vimrc 或 /etc/vim/vimrc。本文所說的 .vimrc 均是指位于用戶主目錄中的 .vimrc 文件。)
Linux 系統(tǒng)中:
- 用 Vim 打開 .vimrc 文件: vim ~/.vimrc
- 復制本文最后的 選項列表 粘貼到 .vimrc 文件
- 保存并關(guān)閉 (:wq)
(此處不建議使用 Vim 編輯 .vimrc 文件,因為很可能無法粘貼成功,可以選擇 gedit 編輯器編輯 .vimrc 文件。)
Windows 系統(tǒng)中:
- 首先, 安裝 gvim
- 打開 gvim
- 單擊 “編輯” -> “啟動設(shè)置”,打開 _vimrc 文件
- 復制本文最后的 “選項列表” 粘貼到 _vimrc 文件
- 單擊 “文件” -> “保存”
(此處應(yīng)注意不要使用 Windows 自帶的記事本編輯該 _vimrc 文件,否則可能會因為行結(jié)束符不同而導致問題。)
下面,我們將深入研究提高 Vim 編輯效率的選項。主要分為以下幾類:
- 縮進 & 制表符
- 顯示 & 格式化
- 搜索
- 瀏覽 & 滾動
- 拼寫
- 其他選項
1. 縮進 & 制表符
使 Vim 在創(chuàng)建新行的時候使用與上一行同樣的縮進:
set autoindent
創(chuàng)建新行時使用智能縮進,主要用于 C 語言一類的程序。通常,打開 smartindent 時也應(yīng)該打開 autoindent:
set smartindent
注意:Vim 具有語言感知功能,且其默認設(shè)置可以基于文件中的編程語言來改變配置以提高效率。有許多默認的配置選項,包括 axs cindent,cinoptions,indentexpr 等,沒有在這里說明。 syn 是一個非常有用的命令,用于設(shè)置文件的語法以更改顯示模式。
(這里的 syn 是指 syntax,可用于設(shè)置文件所用的編程語言,開啟對應(yīng)的語法高亮,以及執(zhí)行自動事件 (autocmd)。)
設(shè)置文件里的制表符 (TAB) 的寬度(以空格的數(shù)量表示):
set tabstop=4
設(shè)置移位操作 >> 或 << 的縮進長度(以空格的數(shù)量表示):
set shiftwidth=4
如果你更喜歡在編輯文件時使用空格而不是制表符,設(shè)置以下選項可以使 Vim 在你按下 Tab 鍵時用空格代替制表符。
set expandtab
注意:這可能會導致依賴于制表符的 Python 等編程語言出現(xiàn)問題。這時,你可以根據(jù)文件類型設(shè)置該選項(請參考 autocmd)。
2. 顯示 & 格式化
要在每行的前面顯示行號:
set number
要在文本行超過一定長度時自動換行:
set textwidth=80
要根據(jù)從窗口右側(cè)向左數(shù)的列數(shù)來自動換行:
set wrapmargin=2
(如果 textwidth 選項不等于零,本選項無效。)
當光標遍歷文件時經(jīng)過括號時,高亮標識匹配的括號:
set showmatch
3. 搜索
高亮搜索內(nèi)容的所有匹配位置:
set hlsearch
搜索過程中動態(tài)顯示匹配內(nèi)容:
set incsearch
搜索時忽略大小寫:
set ignorecase
在打開 ignorecase 選項的條件下,搜索內(nèi)容包含部分大寫字符時,要使搜索大小寫敏感:
set smartcase
例如,如果文件內(nèi)容是:
test
Test
當兩者都ignorecase和smartcase設(shè)置后,搜索“test”,查找并突出顯示這兩種內(nèi)容:
對“Test”的搜索只突出顯示或只找到第二行
4. 瀏覽 & 滾動
為獲得更好的視覺體驗,你可能希望將光標放在窗口中間而不是第一行,以下選項使光標距窗口上下保留 5 行。
set scrolloff=5
一個例子:
第一張圖中 scrolloff=0,第二張圖中 scrolloff=5。
提示:如果你沒有設(shè)置選項 nowrap,那么設(shè)置 sidescrolloff 將非常有用。
在 Vim 窗口底部顯示一個永久狀態(tài)欄,可以顯示文件名、行號和列號等內(nèi)容:
set laststatus=2
5. 拼寫
Vim 有一個內(nèi)置的拼寫檢查器,對于文本編輯和編碼非常有用。Vim 可以識別文件類型并僅對代碼中的注釋進行拼寫檢查。使用下面的選項打開英語拼寫檢查:
set spell spelllang=en_us
(中文、日文或其它東亞語字符通常會在打開拼寫檢查時被標為拼寫錯誤,因為拼寫檢查不支持這些語種,可以在 spelllang 選項中加入 cjk 來忽略這些錯誤標注。)
6. 其他選項
禁止創(chuàng)建備份文件:啟用此選項后,Vim 將在覆蓋文件前創(chuàng)建一個備份,文件成功寫入后保留該備份。如果不想保留該備份文件,可以按下面的方式關(guān)閉:
set nobackup
禁止創(chuàng)建交換文件:啟用此選項后,Vim 將在編輯該文件時創(chuàng)建一個交換文件。 交換文件用于在崩潰或發(fā)生使用沖突時恢復文件。交換文件是以 . 開頭并以 .swp 結(jié)尾的隱藏文件。
set noswapfile
如果需要在同一個 Vim 窗口中編輯多個文件并進行切換。默認情況下,工作目錄是打開的第一個文件的目錄。而將工作目錄自動切換到正在編輯的文件的目錄是非常有用的。要自動切換工作目錄:
set autochdir
Vim 自動維護編輯的歷史記錄,允許撤消更改。默認情況下,該歷史記錄僅在文件關(guān)閉之前有效。Vim 包含一個增強功能,使得即使在文件關(guān)閉后也可以維護撤消歷史記錄,這意味著即使在保存、關(guān)閉和重新打開文件后,也可以撤消之前的更改。歷史記錄文件是使用 .un~ 擴展名保存的隱藏文件。
set undofile
錯誤信息響鈴,只對錯誤信息起作用:
set errorbells
如果你愿意,還可以設(shè)置錯誤視覺提示:
set visualbell
驚喜
Vim 提供長格式和短格式命令,兩種格式都可用于設(shè)置或取消選項配置。
autoindent 選項的長格式是:
set autoindent
autoindent 選項的短格式是:
set ai
要在不更改選項當前值的情況下查看其當前設(shè)置,可以在 Vim 的命令行上使用在末尾加上 ? 的命令:
set autoindent?
在大多數(shù)選項前加上 no 前綴可以取消或關(guān)閉選項:
set noautoindent
可以為單獨的文件配置選項,而不必修改全局配置文件。需要的話,請打開文件并輸入 :,然后鍵入 set命令。這樣的話,配置僅對當前的文件編輯會話有效。
使用命令行獲取幫助:
:help autoindent
注意:此處列出的命令僅對 Linux 上的 Vim 7.4 版本和 Windows 上的 Vim 8.0 版本進行了測試。
這些有用的命令肯定會增強您的 Vim 使用體驗。你會推薦哪些其他有用的命令?
選項列表
復制該選項列表粘貼到 .vimrc 文件中:
" Indentation & Tabs set autoindent set smartindent set tabstop=4 set shiftwidth=4 set expandtab set smarttab " Display & format set number set textwidth=80 set wrapmargin=2 set showmatch " Search set hlsearch set incsearch set ignorecase set smartcase " Browse & Scroll set scrolloff=5 set laststatus=2 " Spell set spell spelllang=en_us " Miscellaneous set nobackup set noswapfile set autochdir set undofile set visualbell set errorbells
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- 一個簡單的linux命令 cat
- 每天一個linux命令之locate 命令
- Linux中Vi和Vim編輯器用法詳解
- linux系統(tǒng)下vim插件安裝介紹
- Linux使用suid vim.basic文件實現(xiàn)提權(quán)
- 在Linux系統(tǒng)中使用Vim讀寫遠程文件的命令詳解
- Linux如何在Vim中更改顏色和主題
- linux下vi(vim)的新的用法總結(jié)
- linux常用工具vi/vim的使用完整版
- Linux Vim 實用命令詳解
- Linux 常用文本處理命令和vim文本編輯器
- Linux (Ubuntu 18.04) 下安裝vim編輯器的方法
- linux中的vi和vim編輯器操作方法
- 詳解Linux文本編輯器Vim
- 詳解Linux常用命令的用法(二)————文本編輯器命令vi/vim
- 詳解linux系統(tǒng)輸入輸出管理和vim的常用功能
- Linux 下vim使用教程
- Linux下設(shè)置Vim編輯器里Tab的長度行號
- 在Linux中使用Vundle管理Vim插件的方法
- Linux命令之mkdir,cat,touch,vi/vim的詳解
相關(guān)文章
linux服務(wù)器ubuntu定時任務(wù)cron設(shè)置每秒執(zhí)行
這篇文章主要介紹了linux服務(wù)器ubuntu定時任務(wù)cron設(shè)置每秒執(zhí)行,使用 cron 時,有一些注意事項可以幫助你確保任務(wù)按預期執(zhí)行,并減少潛在的問題,本文給大家介紹的非常詳細,需要的朋友參考下吧2024-02-02詳解如何在CentOS7中使用Nginx和PHP7-FPM安裝Nextcloud
這篇文章主要介紹了詳解如何在CentOS7中使用Nginx和PHP7-FPM安裝Nextcloud,會通過 Nginx 和 PHP7-FPM 來運行 Nextcloud,同時使用 MariaDB 做為數(shù)據(jù)庫系統(tǒng)。2017-03-03安裝CentOS 6.x報錯"Disk sda contains BIOS RAID metadata"解決方法
今天在安裝CentOS6.2的時候,當進到檢測硬盤的時候,總是過不去,報錯如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda,真是不知如何解決,下面小編把我的思路分享到腳本之家平臺,需要的朋友參考下2019-11-11LNMP系列教程之 解決sendmail不能發(fā)送郵件問題
客戶需要驗證郵件注冊用戶我發(fā)現(xiàn)郵件發(fā)送不了。一般的主機我用過,直接在dz后臺開啟就可以實現(xiàn)。查閱相關(guān)資料應(yīng)該是sendmail不能發(fā)送郵件導致的。那我們?nèi)绾谓鉀Q呢2012-09-09