vi vim使用 新手上路

2021-06-01 13:20:15 字數 2553 閱讀 4340

申明:本文件主要是針對新手的乙個入門指引,老鳥可以bypass過去。

文件中提到的每個命令都經過筆者自己親自驗證。

一. 模式轉換命令

vi/vim主要有3種工作模式,分別是命令模式(command mode),插入模式(insert mode), 可視模式(visual mode)。

1. 命令模式(command mode)

命令模式主要做螢幕游標的移動;字元,字或行的刪除,複製,黏貼;進入插入模式(insert mode)

或可視模式(visual mode)。在命令模式下,按【i】切換到插入模式,按【v】切換到可視模式。

2. 插入模式(insert mode)

插入模式主要用於文字的編輯輸入操作,按【esc】鍵切換到命令模式。

3. 可視模式(visual mode)

可視模式主要用於大批量文字的選擇,以便進行刪除,複製等操作。

二. 游標操作 (命令模式下)

1. 每按一次鍵盤鍵「h / j / k / l」,游標分別左 / 下 / 上 / 右移動乙個字元,與「<--, ↓, ↑, -->」對應一致。

2. 」ctrl+y」 或「ctrl+e」可以實現游標不動,僅僅上下文浮動一行。

3. 」ctrl+f「 或 "ctrl+b" 上下文往前往後移動一頁。

4. 「ctrl+u」 或「ctrl+d」 上下文往前往後移動半頁。  這個功能在應用中非常實用。

5. 「g」 跳轉到檔案尾,"gg」 跳轉到檔案頭,"#g" 跳轉到第#行的行首位置,比如 "23g" 游標就跳轉到23行的行首。

6. 」:set nu「 在上下文中顯示行號

7. ":#" 直接跳轉到上下文的第#行,比如 ":120" 跳轉到第120行。

8. ":f" 或 "ctrl+g" 顯示當前編輯的檔案詳細資訊

三. 編輯命令(命令模式下)

1. 如果在vi/vim編輯時不小心按了 "ctrl+s",可以按 "ctrl+q" 來恢復狀態。

"ctrl+s" 表示停止向終端輸出,

"ctrl+q"表示恢復向終端輸出。

2. 複製:a. "yy" 複製當前行到剪下板

b. ":y#" 複製當前行以下的#行到剪下板,比如 ":y8" 複製8行

c. "yw" 將游標所在處到字尾的字元複製到緩衝區

3. 刪除:a. "dd" 刪除當前行到緩衝區

b. ":d#" 刪除當前行以下的#行到緩衝區,比如 ":d8"刪除8行

c. "x" 刪除當前的乙個字元

4. 黏貼:"p" 黏貼緩衝區內容到當前位置

5. 按滑鼠左鍵可以選擇字串,按滑鼠右鍵把緩衝區的內容黏貼到當前位置,

此時,可以使用命令":set nocindent"和":set noautoindent"來取消縮排空格來對齊**

6. "sp/vsp path/filename" 在vi/vim中開啟指定的檔案進行同時編輯,檔案編輯視窗切換使用 "ctrl+ww"命令組合

四. 查詢替換命令(命令模式下)

1. "/***" 或 "?***" 查詢當前編輯檔案中包含***字串的地方

2. "g+d" 可以快速查詢游標所在位置字串在該編輯檔案中出現的地方

3. 操作完1或2後,按 "n" 向下查詢下乙個匹配字串,按 "n" 向上查詢下乙個匹配字串

4. 用"/***" 或 "?***" 查詢字串時,可以加上 "\c" 來表示查詢時忽略大小寫。注意:"\c" 是全字匹配的。

也可以用 ":set ignorecase" 命令來忽略大小寫,此時是部分匹配;用 ":set noignorecase" 命令來關閉此功能

5. 替換:a. ":1, $ s/str1/str2/g" 命令表示用字串str2替換當前檔案中出現的所有字串str1

b. ":., $ s/str1/str2/g" 命令表示用字串str2替換當前行到檔案末尾中出現的所有字串str1

c. ":s/str1/str2/g" 命令表示用字串str2替換當前行中出現的所有字串str1

d. ":s/str1/str2" 命令表示用字串str2替換當前行中首次出現的字串str1

6. 使用者可以自己安裝乙個ctags外掛程式,在linux $>下用ctags -r命令生成整個工作目錄的索引,然後就可以在

vi/vim的編輯環境下用 "g+ctrl+]" 或 "ctrl+]" 命令來查詢變數,函式和巨集的定義,"ctrl+t" 退回到上一步。

五. 其它命令(命令模式下)

1. :reg    --- 顯示所有暫存器的內容

2. 使用 "!" 可以在vi/vim編輯情況下強制使用linux的命令,比如 ":!pwd" 顯示當前vi/vim的執行路徑

3. 暫存器操作 

"?nyy:將當前行及其下n行的內容儲存到暫存器?中,其中?為乙個字母,n為乙個數字 

"?nyw:將當前行及其下n個字儲存到暫存器?中,其中?為乙個字母,n為乙個數字 

"?nyl:將當前行及其下n個字元儲存到暫存器?中,其中?為乙個字母,n為乙個數字 

"?p:取出暫存器?中的內容並將其放到游標位置處。這裡?可以是乙個字母,也可以是乙個數字 

ndd:將當前行及其下共n行文字刪除,並將所刪內容放到1號刪除暫存器中。

github eclipde 新手上路

首先建立github 或碼雲賬號 二者都能使用但是碼雲較快,畢竟國內的。建議1 使用自己姓名命名的獨一無二的賬號,兩邊都使用同乙個名字賬號,然後密碼相同,這樣後期交叉使用的時候可以少很多煩惱。個人經驗教訓,會敲錯賬號。當然,只用其中乙個的忽略。建議2 使用碼雲,二者操作一致。碼雲是中文,入門快,然後...

PHP新手上路

php的許多特點與其他軟體或者工具有關。利用迄今為止我們所學到的php知識,我們可以試著建立乙個簡單互動的 利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注於乙個典型個人 的建設。標題頁面 front.html 這裡我們有乙個非常簡單的html檔案 歡迎來我的寒舍,雖然這裡現在暫時還沒有什...

vue新手上路

1 position absolute relative fixed和static四種定位方式的理解 1 static 靜態的,是position的預設值,所以一般要麼position沒有定義預設這個,要麼定義的時候肯定不寫這個 2 relative 相對的,用相對定位的元素不管它是否進行移動,元素...