分享兩個(gè)冷門(mén)但又超實(shí)用的Vim使用技巧
最近在使用 VIM 時(shí)遇到兩個(gè)新的問(wèn)題,覺(jué)得還很挺有價(jià)值的?,F(xiàn)在將處理方法總結(jié)后,分享給大家。
VIM 中 delete(backspace)鍵不能向左刪除
MacOS 下打開(kāi) vim 編輯文本,進(jìn)入插入模式,要?jiǎng)h除編輯之前的保存過(guò)的幾個(gè)字符,按下 delete 鍵刪除它們,萬(wàn)萬(wàn)沒(méi)想到呀!只聽(tīng)到 "duang duang duang”,竟然無(wú)效!
有一點(diǎn)先明確一下,在 Mac 的鍵盤(pán)中沒(méi)有 backspace 鍵,有個(gè)鍵叫 delete,其實(shí)相當(dāng)于 Window 下的 backspace 鍵,編輯文本時(shí)按下都具有向左刪除字符的功能。
問(wèn)題的原因
網(wǎng)上搜索得知,出現(xiàn)開(kāi)頭說(shuō)的令人惱火的問(wèn)題的原因是:
VIM 使用了 compatible 模式,或者把 backspace 變量設(shè)置為空。其實(shí) compatible 模式是 VIM 為了兼容 VI 而出現(xiàn)的配置,它的作用是使 VIM 的操作行為和規(guī)范和 VI 一致,而這種模式下 backspace 配置是空的。即意味著 backspace 無(wú)法刪除 indent , end of line , start 這三種字符。
在默認(rèn)狀態(tài)下,delete(backspace)按下只會(huì)刪除本次插入模式下插入的文本,這跟 backspace 的模式設(shè)置有關(guān),其模式可以設(shè)置為以下三種模式:
- 0 same as “:set backspace=” (Vi compatible)
- 1 same as “:set backspace=indent,eol”
- 2 same as “:set backspace=indent,eol,start”
問(wèn)題的解決
知道原因后,就好解決了,我們只需要將 backspace 的模式設(shè)置成 2 就可以了。
編輯 ~/.vimrc 文件并添加以下內(nèi)容并保存,下次進(jìn)入 VIM 就可以在插入模式下任意使用 delete(backspace)鍵了:
- " 解決插入模式下 delete/backspce 鍵失效問(wèn)題
- set backspace=2
使用 vim-airline 美化你的狀態(tài)欄
之前一直使用 Powerline 進(jìn)行狀態(tài)欄美化,系統(tǒng)升級(jí)到 macOS 10.15.5 后突然發(fā)現(xiàn)不能正常使用了。
使用 Google 搜索解決問(wèn)題無(wú)果后,發(fā)現(xiàn)了另一款更輕量且功能強(qiáng)大的狀態(tài)欄美化神器 vim-airline。
vim-airline 是一個(gè)在 VIM 中顯示更友好的狀態(tài)欄的插件,可以讓你工作更開(kāi)心喲!
項(xiàng)目地址:https://github.com/vim-airline/vim-airline
先看下效果,是不是很漂亮呢!
安裝 vim-airline
vim-airline 的使用也很簡(jiǎn)單,你只需直接下載 vim-airline 插件并放到 VIM 的安裝目錄下的插件目錄即可。
- $ git clone https://github.com/vim-airline/vim-airline.git
- $ cp vim-airline/plugin/airline.vim ~/.vim/plugin/
- $ ls ~/.vim/plugin
- airline-themes.vim airline.vim
當(dāng)然你也可以直接使用多種 VIM 插件管理器來(lái)安裝 vim-airline 插件,比如:
Plugin Manager | Install with... |
---|---|
[Pathogen] | git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline Remember to run :Helptags to generate help tags |
[NeoBundle] | NeoBundle 'vim-airline/vim-airline' |
[Vundle] | Plugin 'vim-airline/vim-airline' |
[Plug] | Plug 'vim-airline/vim-airline' |
[VAM] | call vam#ActivateAddons([ 'vim-airline' ]) |
[Dein] | call dein#add('vim-airline/vim-airline') |
[minpac] | call minpac#add('vim-airline/vim-airline') |
pack feature (native Vim 8 package feature) | git clone https://github.com/vim-airline/vim-airline ~/.vim/pack/dist/start/vim-airline Remember to run :helptags ~/.vim/pack/dist/start/vim-airline/doc to generate help tags |
配置 vim-airline
vim-airline 安裝完成后,基本上就完全可以使用了。如果你需要定制一些個(gè)性化的需求,也可以通過(guò) .vimrc 文件進(jìn)行配置。下面是我的配置,你可以參考下:
- if !exists('g:airline_symbols')
- let g:airline_symbols = {}
- endif
- let g:airline_left_sep = '▶'
- let g:airline_left_alt_sep = '❯'
- let g:airline_right_sep = '◀'
- let g:airline_right_alt_sep = '❮'
- let g:airline_symbols.linenr = '¶'
- let g:airline_symbols.branch = '⎇'
- " 是否打開(kāi)tabline
- let g:airline#extensions#tabline#enabled = 1
- let g:airline_theme='powerlineish'
- set laststatus=2
- set encoding=utf-8
- set t_Co=256
- set fillchars+=stl:\ ,stlnc:\
- set term=xterm-256color
- set termencoding=utf-8
- set nocompatible
- set number
- syntax enable
- set backspace=2
vim-airline 除了自帶的樣式外,你還可以通過(guò)官方主題倉(cāng)庫(kù) vim-airline-themes 項(xiàng)目找到更多漂亮又好用的主題喲!
項(xiàng)目地址:https://github.com/vim-airline/vim-airline-themes