本篇是在學習了pegasuswang的課程:玩轉vim 從放棄到愛不釋手 後總結的常用操作筆記。此課程從vim入門開始,由淺入深地講解了vim的基礎操作、配置及常用外掛程式,可以免去學習的許多彎路,是非常優秀的vim課程,同時也是免費的。
下面進入我們此次的正文。
1.終端命令列操作
2.快速移動
3.快速增刪改查
4.搜尋替換
5.多檔案操作
6.複製貼上與暫存器的使用
7.巨集的使用 - 批量操作
8.補全
9.配色方案
vim配置及外掛程式
nomal模式 -> 插入模式
視覺化模式
常用操作normal模式:
e/e: 移動到下乙個 word/word 結尾
b/b: 移動到上乙個 word/word 開頭 (backword)
hjkl: 代替上下左右按鍵
0/$: 行首/行尾
gg/g: 移動到文字開始位置/移動到文字結束位置
ctrl+f / ctrl+u: 向下翻頁/向上翻頁
cw/caw/ciw: 刪除當前游標後的單詞並進入插入模式(包括空格)/刪除當前游標所處的單詞並進入插入模式(包括空格)/ 刪除當前游標所處的單詞並進入插入模式(不包括空格)
同理,利用視覺化模式的vi" / ( / { 可以做到選中的功能
d/dd: 配合文字物件快速刪除乙個單詞/刪除整行
x: 刪除乙個字元
r/r: 替換乙個字元/從當前字元開始一直替換
y/p/d: 複製(yank)/貼上(put)/剪下(delete)
u/ctrl+r: 撤銷上一步操作/取消上一次撤銷操作
normal模式下,:[range] s/[pattern]/[string]/[flags] 搜尋並替換,其中:
[pattern]: 源字串(可正則)
[string]: 替換後的文字
[flags]: 幾個常用標誌
buffer操作:
window操作:(代表ctrl+w)
巨集的使用分為錄製和回放, 適用於批量重複性操作。
批量操作過程:
nomal模式下使用q來錄製,同時也是q來結束錄製對已選中的內容執行normal命令的操作方式:使用q[register]選擇要儲存的暫存器(例如qa),把錄製的命令儲存其中
使用@[register]回放暫存器中儲存的一系列命令(例如@a)
v選擇一行進入到視覺化模式,使用g移動到檔案尾部全選剩下的,然後在命令列模式下輸入 :normal 就是使用normal模式下的命令, :normal @a 就可以將剩下的全部執行記錄下的巨集。
批量操作也可以不使用巨集,第二種方式:
選擇需要操作的內容,例如gg + v + g完成檔案內容全選+ 補全單詞使用命令 :normal [要執行的normal命令] 完成對選中內容的批量操作
+ 補全檔名
+ 補全**,需要開啟檔案型別檢查(:filetype on),安裝外掛程式
補全時出現選項條時,往下, 往上
在~/.vimrc檔案寫入vim的持久化配置:
" 設定行號
set number
" 開啟語法高亮
syntax on
" 設定配色方案
set background=dark
colorscheme hybrid
" 設定高亮搜尋
set hlsearch
set incsearch
" 按f2 進入貼上模式
set pastetoggle=" 設定摺疊方式
set foldmethod=indent
" 一些方便的對映
let mapleader=','
let g:mapleader=','
" 使用jj進入normal模式
inoremap jj `^
noremap
hnoremap
jnoremap
knoremap
l" json格式化
com! formatjson %!python3 -m json.tool
" 外掛程式設定,這裡使用了vim-plug外掛程式管理器
call plug#begin('~/.vim/plugged')
plug 'mhinz/vim-startify'
plug 'vim-airline/vim-airline'
plug 'vim-airline/vim-airline-themes'
plug 'yggdroot/indentline'
plug 'w0ng/vim-hybrid'
plug 'altercation/vim-colors-solarized'
plug 'preservim/nerdtree'
plug 'kien/ctrlp.vim'
call plug#end()
map :nerdtreetoggle
let g:ctrlp_map =
''
換行:source +檔案路徑 啟用配置檔案
~/.vimrc配置:
" nerdtree settings
nnoremap f :nerdtreefindnnoremap t :nerdtreetoggle"
set width
let nerdtreewinsize=31
" show hidden files
let nerdtreeshowhidden=1
" not show files listed
let nerdtreeignore=
[ \ '\.git$', '\.hg$', '\.svn$', '\.stversions$', '\.pyc$', '\.pyo$', '\.swp$',
\ '\.ds_store$', '\.sass-cache$', '__pycache__$', '\.egg-info$', '\.ropeproject$',
\ ]" ctrlp settings
let g:ctrlp_map =
''
配置完成後,f 開啟目錄樹並定位到當前檔案,t 開關目錄樹。
使用 t 開啟目錄樹後,按wp 可跳轉回視窗之前編輯的位置。
~/.vimrc配置:
" easymotion settings
nmap ss (easymotion-s2)
配置好後,在nomal模式下輸入ss,再輸入需要定位的字元(螢幕視覺化範圍內),再根據高亮字元,選擇要去的位置即可完成定位。
搜尋替換外掛程式:
再使用 :fardo 命令確認替換
git:
~/.vimrc配置:
let g:pymode_python =
'python3'
let g:pymode_trim_whitespaces = 1
let g:pymode_doc = 1
let g:pymode_doc_bind =
'k'let g:pymode_rope_goto_definition_bind =
''let g:pymode_lint = 1
let g:pymode_lint_checkers =
['pyflakes', 'pep8', 'mccabe', 'pylint'
]let g:pymode_options_max_line_length = 120
靜態檢查 ale:
VIM常用命令總結
個人常用的vim命令列表 移動游標 上 k nk 向上移動n行 9999k或gg可以移到第一行 g移到最後一行 下 j nj 向下移動n行 左 h nh 向左移動n列 右 l nl 向右移動n列 w 游標以單詞向前移動 nw 游標向前移動n個單詞 游標到單詞的第乙個字母上 b 與w相反 e 游標以單...
vim常用命令總結
把vim常用命令總結一下,以便日後查閱 模式 normal 常規模式 esc insert 插入模式 i visual 可視模式 選擇整行,整段文字 v 儲存,退出 wq 儲存 退出 q 強制退出 進入,返回 ctrl 進入tag ctrl o 返回上一層 插入 i 在游標前插入字元 a 在一行的末...
Vim常用命令總結
h j k l 分別對應於 ctrl f 向下翻一頁 forward ctrl b 向上翻一頁 back ctrl d 向下翻半頁 down ctrl u 向上翻半頁 up h 螢幕頂行首字元 m 螢幕中間首字元 l 螢幕末行首字元 gg 當前檔案首行首字元 g 當前檔案末行首字元 n g 跳轉到第...