vim第一個小技巧:有時當我們使用普通使用者打開一個檔案,修改了很多内容,在儲存的時候才發現沒有權限,此時需要使用sudo來寫入,指令如下:
:w !sudo tee %
vim常用設定:(寫入 /etc/vimrc 檔案或者~/.vimrc,永久生效)
set nu! " 顯示行号
set tabstop=4 " tab鍵為4個空格
set autoindent " 換行自動縮進
set shiftwidth=4 " 自動縮進時的寬度
set ts=4 " tabstop的寬度
set softtabstop=4 " 倒退鍵
set paste " 粘貼時不自動換行
set laststatus=2 " 顯示目前檔案名
%retab! " vim屬性修改後需要執行此指令重載屬性配置
也可在終端設定是否顯示行号:
:set nu " 顯示行号
:set nonu " 不顯示行号
将所有tab,每個tab替換為4個空格
:set ts=4
:set expandtab
:%retab!
将所有空格以4個為機關,替換成tab
空格替換為TAB:
:set ts=4
:set noexpandtab
:%retab!
vim字元串替換
:s/old/new/ " 目前行old的第一次出現改為new
:s/old/new/g " 目前行所有old改為new
:50,100s/old/new/g " 目前檔案50到100行所有old改為new
:1,$s/old/new/g " 目前檔案所有old改為new
:%,$s/old/new/g " 目前檔案所有old改為new
撤銷和恢複
u:撤銷上一步的操作
Ctrl+r:恢複上一步撤銷的操作
如果在終端要使用vim打開多個檔案,可以:
橫向分割顯示:
vim -o filename1 filename2
縱向分割顯示:
vim -O filename1 filename2
如果已經用vim打開了一個檔案,想要在視窗中同時再打開另一個檔案(其中,vs可以用vsplit替換,sp可以用split替換,如果finename不存在,則會建立該檔案并打開):
橫向分割顯示:
:vs filename
縱向分割顯示:
sp filename
關閉光标所在的視窗
:q
或
:close
關閉除光标所在的視窗之外的其他視窗
:only
關閉所有視窗
:qa
切換視窗
ctrl + w w " 即按住ctrl鍵,再按兩下w鍵。
或
ctrl + w " 即按住ctrl鍵,按一次w鍵,再按一次表示方向的h或j或k或l,則光标會切換到目前視窗的 左|下|上|右 側的視窗
檔案間切換
Ctrl+6 " 下一個檔案
:bn " 下一個檔案
:bp " 上一個檔案
vim 臨時退出
方法一:使用 Ctrl-z 以及 fg 這兩個指令組合。
這一解決方法主要利用了 Linux/Unix 的作業機制。
具體原理是:Ctrl-z 指令将目前的 Vi/Vim 程序放到背景執行,之後 shell 環境即可為你所用;
fg 指令則将位于背景的 Vi/Vim 程序放到前台執行,這樣我們就再次進入 Vi/Vim 操作界面并恢複到原先的編輯狀态。
方法二:使用行指令 :sh。
在 Vi/Vim 的正常模式下輸入 :sh即可進入 Linux/Unix shell 環境。在要傳回到 Vi/Vim 編輯環境時,輸入 exit 指令即可。
這兩種方法實作機制不一定,但效果一樣,都非常快捷有效。