NLP工具 Vim常用命令小結

2021-10-24 06:08:21 字數 4363 閱讀 3312

vim是解決文字快速處理(尤其是伺服器端)的神器,本文簡單總結下常用的命令。

1. 基本概念和功能

1.1 模式及其切換

vim中包括如下常見模式「

普通模式:vim啟動後的預設模式,可用於游標的移動、文字的刪除等。

插入模式:向文字中插入字元。

視覺化模式:用於區塊選擇,可通過v一類的命令進入

命令列模式: 在命令行內輸入命令。在其它模式下,通過esc進入命令列模式。

1.2 介面設定

:set number顯示各行行號,set nonumber取消該功能

:set list顯示製表符和行末,set nolist取消該功能

:set fileencoding檢視當前檔案編碼

:e ++enc=gb18003強制採用某種編碼重新開啟本文件(臨時的)

1.3 檔案儲存和退出

:w儲存檔案但不退出vim

:w file將修改儲存到file,但不退出vi

:wazz:x儲存檔案並退出vi

"q!不儲存檔案,退出vi

:e! 放棄所有修改,並從上次儲存檔案開始再編輯

2. 選擇區塊

通過游標移動選擇指定的字元區間/行/區塊,是實現其它複雜操作的基礎。

2.1 游標行內移動

->l向右逐字元移動

<-h左箭頭,向左逐字元移動

w下乙個單詞的開頭, 可實現跨行

e下乙個單詞的結尾,可實現跨行

b上乙個單詞的開頭, 可實現跨行

^行首(第乙個非空字元)

$行末(最後乙個非空字元)

0|:當前行的第一列

2.2 游標跨行移動

向上箭頭k向上一行

向下箭頭j向下一行

數字+向上/下箭頭向上/下移動數字行

+enter鍵 下一行的第乙個非空字元

-上一行的的第乙個非空字元

h: 螢幕第一行

m: 螢幕中建行

l: 螢幕最後一行

(: 句子的開頭

): 句子的結尾

: 段落的結尾

ctrl+f向前翻頁

ctrl+b向下翻頁

gg第一行

g最後一行

數字+%文件的 數字%處

2.3 指定文字定向查詢

:set ic 查詢時忽略大小寫

:set noic 查詢時對大小寫敏感

/text命令列模式下輸入,從文字從頭開始,向下尋找目標字串,最終定位到字串所在行第乙個非空字元

?text命令列模式下輸入,從文字從尾開始,向上尋找目標字串,最終定位到字串所在行第乙個非空字元

n: 配合前面的/text?text使用,向同一方向尋找下乙個。

n: 配合前面的/text?text使用,向相反方向尋找下乙個。

查詢功能還支援正規表示式,如^$選擇空行。

2.4 視覺化模式

v字元視覺化模式,文字選擇以字元為單位,跨行選擇時前序行會被全部選中。

v行視覺化模式,文字選擇以行為單位,直接選擇所在所在行,

ctrl+v塊視覺化模式,文字選擇以矩形區塊為單位,通過指定矩形左上角和右下角點,定義所選區塊,特別適用於選擇**列等場景。

3. 插入模式

3.1 進入插入模式

i在游標所在位置處進入插入模式(效果類似於左側插入)

i在游標所在行行首進入插入模式

a在游標所在位置右邊進入插入模式(效果類似於右側插入)

a在游標所在行行尾進入插入模式

o在游標所在行下,插入新的一行進入插入模式

o在游標所在行上,插入新的一行進入插入模式

s刪除游標所在字元,並進入插入模式

s刪除游標所在行,並進入插入模式

3.2 複製和剪下

yy將當前行的內容複製到臨時緩衝區

nyy將第n行的內容複製到臨時緩衝區

x剪下

p將臨時緩衝區內的文字貼上到游標後

p將臨時緩衝區內的文字貼上到游標前

3.3 修改

c: 視覺化模式選擇高亮指定文字後,使用c即可刪除指定文字,同時進入插入模式

rchar: 用 char 替換當前字元(注意是單個字元)

r text esc: 用 text 替換當前字元直到按下 esc 鍵

3.4 刪除

d: 刪除,注意刪除後的文字是在剪下板裡的,所以仍可將其進行p操作

db: 刪除游標前面的word

dw: 刪至下乙個字的開頭

d^: 刪除游標至行首

dw: 刪除游標至行末

dd: 刪除一行

dg: 從當前行一直刪至檔案結束

數字+dd: 刪除游標起的若干行

:m,nd: 刪除第m-n行,其實這是進入命令列模式後的刪除,此處的m和n可以採用數字表示絕對行號,也可以採用+m表示從本行開始往下的第m行(+0表示本行),-m同理

3.5 縮排

>增加游標區域所在行的縮排

<減少游標區域所在行的縮排

3.5 撤銷與反撤銷

u撤銷上一步操作

u撤銷當前行的所有修改

ctrl+r恢復上一步被撤銷的操作

3.6 插入新文字

:r file讀入檔案 file 內容,並插在當前行後

:nr file讀入檔案 file 內容,並插在第 n 行後

3.7 批量替換

:ranges/oldtext/newtext/g全文範圍內,用newtext 替換 oldtext

:m,ns/oldtext/newtext第m-n行範圍內,用newtext 替換 oldtext,這裡的m和n除了用絕對行號,還可以使用相對行號

:g/text1/s/text2/text3全文範圍內,查詢包含 text1 的行,用 text3 替換 text2,

:g/text/command上一條命令的通用版本,在所有包含 text 的行執行 command 所表示的命令,這裡的g可以改為指定行區間

:v/text/command上一條命令的反向命令,即所有不包含 text 的行執行 command 所表示的命令,這裡的g可以改為指定行區間

vim常用命令小結

跳轉到指定行 1.88g 命令模式 2.88 末行模式 跳轉檔案首 gg 命令模式 跳轉檔案尾 g 命令模式 自動格式化程式 gg g 命令模式 set shiftwidth 4大括號對應 命令模式 游標移至行首 0 命令模式 執行結束,工作模式不變。游標移至行尾 命令模式 執行結束,工作模式不變。...

vim 常用命令小結

1 開啟多個視窗 split 上下開啟視窗 vsplit 左右開打視窗 ctrl ww 視窗之間切換 ctrl wq 推出當前視窗 2 移動游標 數字 0 將游標移動到當前行首 將游標移動到當前行尾 g 移動到這個檔案的最後一行 ng n 為數字,移動到這個檔案的第n行.gg 移動到這個檔案的第一行...

vim使用常用命令小結

vim 是 linux 下的一款強大的文字編輯器。但是對於像筆者這種剛剛接觸 linux 的菜鳥來說 vim 的使用就略顯複雜了。本篇文章就詳細介紹下 vim 的使用。vim 有三種模式 一般模式 編輯模式和命令模式。使用vim filename開啟乙個文字檔案時就進入 vim 的一般模式,如果是在...