vim技巧收集
最近喜歡看看vim的東西了,在網上收集了一些技巧,貼出來好便於以後查找:
去除重復: www.2cto.com
方法一:
:sort
:g/^\(.\+\)$\n\1/d
方法二:
:sort u
刪除某些行:
方法一:
:%s/正則表達式//g
方法二:
:g/正則表達式/d
在Vim中直接調用Linux的seq命令 輸出10,11,12.。。。20
:r !seq 10 20 (多行)或 :r !echo {10..20} (單行)
以下命令可以對標點內的內容進行操作。
ci'、ci"、ci(、ci[、ci{、ci< - 分別更改這些配對標點符號中的文本內容
di'、di"、di(或dib、di[、di{或diB、di< - 分別刪除這些配對標點符號中的文本內容
yi'、yi"、yi(、yi[、yi{、yi< - 分別復制這些配對標點符號中的文本內容
vi'、vi"、vi(、vi[、vi{、vi< - 分別選中這些配對標點符號中的文本內容
cit 刪除一對 HTML/XML 的標簽內部的所有字符並進入插入模式
ci” ci’ ci` 刪除一對引號字符 (” 或 ‘ 或 `) 中所有字符並進入插入模式
另外如果把上面的i改成a可以連配對標點一起操作。
:sh 如果要在編輯環境中和shell長時間交互,用這個跳到shell環境下面,退回vim環境就是exit了
: .!command 在交互的過程中,如果我們需要將程序的執行結果直接貼到vim中,當然位置是vim中的當前行了,就用這個。(以前沒有實驗成功,應該是.!)
!! 在 noraml 模式裡直接插入外部程序輸出
:line1,line2 d 刪除line1,與line2之間包括本身的文本行。
:line1,line2 m line3 將line1與line2之間的內容包本身移動到line3之後。
:line1,line2 co line3 將line1,line2之間的內容包括本身復制到line3之後。
set colorcolumn=80 set cuc
用shift+字母可以在小寫下轉化為大寫
:ab string1 string2 string2是我們原本要輸入的內容,string1是我們設定的簡寫方式
:r filename 將該文件補充到當前行的下面
nJ 先按n,然後在按shfit+j,這樣下面的n行都會被連接到當前行的末尾
set cuc set cul 這兩個是增強視線效果
set autoindent 自動縮進
set ruler 標尺
set autoread 自動讀取
history
Ctrl-A 數字++ Ctrl-X 數字-- normal mode:
CTRL-X CTRL-F 補全文件名
CTRL-X CTRL-L 整行補全
CTRL-X CTRL-N 根據當前文件裡關鍵字補全
CTRL-X CTRL-V 補全vim命令
:mX 移動行 當前行移動到第X行
:coX :tX 復制行,當前行復制到第X行
'' 此命令相當有用, 它移動光標到上一個標記處, 比如用 gd, * 等查找到某個單詞後, 再輸入此命令則回到上次停留的位置.
'. 此命令相當好使, 它移動光標到上一次的修改行.
`. 此命令相當強大, 它移動光標到上一次的修改點.
. 重復上次編輯命令.
gj, gk 長行上下移動把換行的行當成一行來移動
選擇需要統計的文本 按下 g<C-g>
:g/搜索/# 可以展示所有找到的結果並且附帶行號
:Sex 分割並展示當前文件所在目錄,:E 展示當前文件所在目錄
:only 關閉當前標簽頁中的其它窗口;:tabo[nly] 關閉其它標簽頁
gu 變成小寫,gU 變成大寫,g~ 則切換大小寫。如 ggguG 全文變小寫。可視模式下也可以用 u U ~ 來達到相同的功能。
g; 按照最近修改的順序進行光標的跳轉,g, 與 g; 類似但方向相反
:v/test/d 刪除當前文件中所有不包含test的行
:g/test/d 刪除當前文件中所有包含test的行
Normal模式下按”gf“ vim打開光標文件 ,按”CTRL-^“回到剛才的位置
”q/“和”q?“命令,在vim窗口最下面打開一個新的窗口,這個窗口會列出你的查找歷史記錄
‘incsearch‘表示在你輸入查找內容的同時,vim就開始對你輸入的內容進行匹配
‘ignorecase‘選項表示在查找時忽略大小寫。
進入normal模式,按查找鍵盤(/),然後然後用鼠標選擇需要的內容,選取會自動選擇行號,菜單欄編輯-復制即可。