分享兩個冷門但又超實用的 Vim 使用技巧!

2021-10-19 10:08:47 字數 2576 閱讀 3338

最近在使用vim時遇到兩個新的問題,覺得還很挺有價值的。現在將處理方法總結後,分享給大家。

macos 下開啟 vim 編輯文字,進入插入模式,要刪除編輯之前的儲存過的幾個字元,按下 delete 鍵刪除它們,萬萬沒想到呀!只聽到 "duang duang duang」,竟然無效!

有一點先明確一下,在 mac 的鍵盤中沒有 backspace 鍵,有個鍵叫 delete,其實相當於 window 下的 backspace 鍵,編輯文字時按下都具有向左刪除字元的功能。

問題的原因

網上搜尋得知,出現開頭說的令人惱火的問題的原因是:

vim 使用了 compatible 模式,或者把 backspace 變數設定為空。其實 compatible 模式是 vim 為了相容 vi 而出現的配置,它的作用是使 vim 的操作行為和規範和 vi 一致,而這種模式下 backspace 配置是空的。即意味著 backspace 無法刪除 indent , end of line , start 這三種字元。

在預設狀態下,delete(backspace)按下只會刪除本次插入模式下插入的文字,這跟 backspace 的模式設定有關,其模式可以設定為以下三種模式:

0 same as 「:set backspace=」 (vi compatible)

1 same as 「:set backspace=indent,eol」

2 same as 「:set backspace=indent,eol,start」

問題的解決知道原因後,就好解決了,我們只需要將 backspace 的模式設定成 2 就可以了。

" 解決插入模式下 delete/backspce 鍵失效問題

set backspace=2

之前一直使用 powerline 進行狀態列美化,系統公升級到 macos 10.15.5 後突然發現不能正常使用了。

使用 google 搜尋解決問題無果後,發現了另一款更輕量且功能強大的狀態列美化神器 vim-airline。

vim-airline 是乙個在 vim 中顯示更友好的狀態列的外掛程式,可以讓你工作更開心喲!

先看下效果,是不是很漂亮呢!

安裝 vim-airline

$ git clone 

$ cp vim-airline/plugin/airline.vim ~/.vim/plugin/

$ ls ~/.vim/plugin

airline-themes.vim airline.vim

當然你也可以直接使用多種 vim 外掛程式管理器來安裝 vim-airline 外掛程式,比如:

配置 vim-airline

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 = '⎇'

" 是否開啟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 除了自帶的樣式外,你還可以通過官方主題倉庫 vim-airline-themes 專案找到更多漂亮又好用的主題喲!

分享兩個許可權設計的亮點

許可權在各種業務應該是很常見的了,資料也有很多,但對於使用者來說,為了避坑,還是需要先了解下。先看看許可權設計的萬能思路 設計原理遵循三原則 who what how,這個就不多說了。最近在使用乙個開源的專案,其資料許可權模組設計全面,挺好用的,有兩個亮點值得學習 仔細一想也是這個道理,對資料的控制...

為Flex Builder 安裝兩個實用的外掛程式

1 subclipse 最近工作中,所有專案都在svn 中進行。由於flex builder 沒有內建svn 支援,很是不便。在編譯時,svn 資料夾會導致一些莫名錯誤。在編寫flash as時,我現在習慣用flash develop,小巧實用,也支援svn 為了方便,給flex builder 也...

兩個實用的下拉列表聯動外掛程式

首先是ajax填充外掛程式filloptions,這個外掛程式可以通過ajax方法獲取資料並把資料新增到下拉列表框,資料格式支援xml格式和json格式,外掛程式定義如下 filloptions url,options 引數說明 options包括如下引數 datatype ajax請求返回的資料格...