1. vim f和t的快捷方式
[ 移動到指定字元 ]
上面的命令都是行間移動(除h, l外),也就是從當前行移動到另外一行。如果我們想在當前行內快速移動,可以使用f, t, F, T命令。
"f"命令移動到游標右邊的指定字元上,例如,"fx",會把移動到游標右邊的第一個'x'字元上。"F"命令則反方向查找,也就是移動到游標左邊的指定字元上。
"t"命令和"f"命令的區別在於,它移動到游標右邊的指定字元之前。例如,"tx"會移動到游標右邊第一個'x'字元的前面。"T"命令是"t"命令的反向版本,它移動到游標左邊的指定字元之後。
這四個命令只在當前行中移動游標,游標不會跨越回車換行符。
可以在命令前面使用數字,表示倍數。例如,"3fx"表示移動到游標右邊的第3個'x'字元上。
";"命令重復前一次輸入的f, t, F, T命令,而","命令會反方向重復前一次輸入的f, t, F, T命令。這兩個命令前也可以使用數字來表示倍數。
2. vim中如何查找和替換字元串
一、 字元串的查找
1. vim 中用 / 和 ? 來查找字元串,兩者的區別是:
/string 會高亮顯示游標後匹配的第一個字元串,回車後游標移到該字元串的第一個字母;
string 會高亮顯示游標前匹配的第一個字元串,回車後游標移到該字元串的第一個字母。
在回車之後,按n鍵同方向轉到下一個匹配的字元串,按N鍵反方向轉到上一個匹配的字元串。
2. 用命令 :set ic 和 :set noic 來分別設置查找時不區分和區分大小寫。
如果查找特殊字元,如 ^、$、*、/ 和 .,需要在前面加 \ 來轉義。
二、字元串的替換
1. vim 中可用 :s 命令來替換字元串,具體如下:
:s/str1/str2/ 替換當前行第一個 str1 為 str2
:s/str1/str2/g 替換當前行中所有 str1 為 str2
:m,ns/str1/str2/ 替換第 n 行開始到最後一行中每一行的第一個 str1 為 str2
:m,ns/str1/str2/g 替換第 n 行開始到最後一行中所有的 str1 為 str2
(註:m和n 為數字,若m為 .,表示為當前行開始;若n為$,則表示到最後一行結束)
如果使用 # 作為分隔符,則中間出現的 / 不會作為分隔符,比如:
:s#str1/#str2/# 替換當前行第一個 str1/ 為 str2/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
2. 其他:%s/str1/str2/(等同於 :g/str1/s//str2/) 替換每一行的第一個 str1 為 str2
:%s/str1/str2/g(等同於 :g/str1/s//str2/g 和 :1,$ s/str1/str2/g ) 替換文中所有 str1 為 str2
從替換命令可以看到,g 放在命令末尾,表示對搜索字元串的每次出現進行替換;不加 g,表示只對搜索
3. Vi/Vim 使用小竅門,如何消除搜索後的關鍵字高亮
輸入:」:noh「。
使用技巧
1、使用 h、j、k、l
當命令模式時,可以用 h、j、k、l 來分別實現左、下、上、右箭頭的功能。
2、快捷指令
(1)[Ctrl] + [b] 屏幕『向上』移動一頁,相當於 [Page Up] 按鍵。
(2)[Ctrl] + [d] 屏幕『向下』移動半頁。
(3)[Ctrl] + [u] 屏幕『向上』移動半頁。
(4)/word 向游標之下尋找一個名稱為 word 的字元串。例如要在檔案內搜尋 vbird 這個字元串,就輸入 /vbird 即可。
(3)vim上移命令擴展閱讀
簡介
vim的設計理念是命令的組合。用戶學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,並且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。
同時VIM與很多快捷鍵設置和正則表達式類似,可以輔助記憶。並且vim針對程序員做了優化。
發展歷程
Bram Moolenaar 在 80 年代末購入他的Amiga計算機時,Amiga 上沒有他最常用的編輯器vi。Bram 從一個開源的 vi 復制 Stevie 開始,開發了 Vim 的 1.0 版本。最初的目標只是完全復制 vi 的功能,那個時候的 Vim 是Vi IMitation(模擬)的簡稱。
1991 年 Vim 1.14 版被 "Fred Fish Disk #591" ——Amiga 用的免費軟體集收錄了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-DOS上。從那個時候開始,Vim 的全名就變成 Vi IMproved了。
4. VI和VIM命令的操作
vi編輯器是分為三種狀態的
h 或 向左箭頭鍵(←) 游標向左移動一個字元
j 或 向下箭頭鍵(↓) 游標向下移動一個字元
k 或 向上箭頭鍵(↑) 游標向上移動一個字元
l 或 向右箭頭鍵(→) 游標向右移動一個字元
[Ctrl] + [d] 屏幕『向下』移動半頁
[Ctrl] + [u] 屏幕『向上』移動半頁
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[End] 移動到這一行的最後面字元處(常用)
gg 移動到這個檔案的第一行 (常用)
n<Enter> n 為數字。游標向下移動 n 行(常用)
n<space> 那個 n 表示『數字』,游標會向右移動這一行的 n 個字元。
n<Enter> n 為數字。游標向下移動 n 行(常用)
/word 向下尋找某個單詞
?word 向下尋找某個單詞
n 向下重復執行搜索命令
N 向上重復執行搜索命令
dd 刪除游標所在的整列
yy 復制游標所在那行
. 重復上一個動作
主要為一般模式到編輯模式的切換
i,I a,A o,O r,R 都可以實現到編輯模式的切換
其中r,R實現的是取代模式
Esc 為推出編輯模式回到常用模式
:w 編輯的數據寫入硬碟
:w! 如果未見為只讀的時候強制寫入
;q 離開
:q! 不儲存強制離開
:wq 儲存後離開
:wq! 儲存後強制離開
ZZ 若檔案沒有動過則直接離開,若檔案已動過則保存離開
:set nu 設置行號
:set nonu 取消行號