tft每日頭條

 > 生活

 > vim 快速入門

vim 快速入門

生活 更新时间:2025-01-31 01:36:42

vim 快速入門(整理常用的vim命令)1

vim 是一款功能強大的文本編輯器,它是Linux下常用的編輯器之一,對于熟練掌握了 vim 的人來說,用它編輯文件,方便又快捷,能極大的提高工作效率

vim 功能強大,對應的命令也非常的多,對于初學者來說,看到這麼多的命令容易打退堂鼓,想當初,自己剛接觸vim的時候,由于不熟悉vim,每一個命令都要上網查閱,真的是舉步維艱

其實,工作中常用的vim命令也就那麼些,隻需學習這些常用的命令,勤加練習,假以時日定能熟練的掌握它們,進而就能解決大部分的編輯問題

本文結合我自己工作中使用vim的經驗,整理了一些常用的vim命令

vim 的模式

進入vim之後,會有多種不同的模式,模式之間的切換,讓你隻需要通過鍵盤,就能完成文本的編輯,這也是vim存在多種模式的原因,vim主要有以下幾個模式

  • 正常模式

剛進入vim界面的時候是正常模式,複制、粘貼操作都是在這個模式下進行的

  • 插入模式

文本内容輸入,修改是在這個模式下進行的

可以按 i 或者 I 進入到插入模式,在插入模式下,按 esc會返回到正常模式

  • 命令模式

輸入或者修改完之後,需要保存退出,這個時候vim就會進入到命令模式

按 esc : 進入命令模式,再次按 esc 返回正常模式

  • 可視模式

可視模式是對文件進行大量重複操作的時候,可以一次性執行完成的功能

可通過 v、V、ctrl v 進入可視模式

常用命令
  • 打開、保存、另存為、退出

vim file #打開文件 vim #打開臨時文件,保存的時候需要制定文件名 :w #保存 :w file #另存為 :q #退出 :wq #保存并退出 :x #保存并退出 ZZ 或 shift zz #保存并退出 :q! #不保存退出,會丢失數據

例如: vim a.txt命令打開 a.txt文件,假如a.txt存在的話,打開已有的,不存在的話,則會打開一個新的文件

  • 光标移動

k、j #光标向上、向下移動一行 h、l #光标向左、向右移動一個位置, l 是字母L的小寫 ^ #光标移動到當前行首 $ #光标移動到當前行尾 w #光标向前移動一個單詞 b #光标向後移動一個單詞 gg #光标移動到文件開頭 G 或 shift g #光标移動到文件末尾 n G #光标移動到指定行号的行首, n 表示行号 ctrl f #向下翻一頁 ctrl b #向上翻一頁

分别按 k j h l能實現光标上下左右移動,鍵盤上下左右箭頭的按鍵也表示方向鍵,它跟 k j h l 有什麼區别呢

如果是圖形界面和遠程終端都可以使用,如果是字符終端的時候,鍵盤上下左右箭頭的按鍵有時會出現亂碼,所以最好統一使用 k j h l

  • 插入

i #光标前插入 I #當前行首插入 o #當前行後面插入一行,光标移動到插入行的行首,o 是字母,不是數字0 O #當前行前面插入一行,光标移動到插入行的行首,O 是字母,不是數字0 a #當前光标後插入 A #當前行尾插入

小技巧: 當前處于正常模式, 輸入數字 10,按i進入插入模式, 接着輸入字母 #,最後按esc鍵,此時,在光标所在行會出現 10 個#字符,相當于插入了10個#,當你想在文本中插入一行字符作為分割線的時候,就能應用到這個小技巧

  • 複制、粘貼、剪切

yy 或 Y #複制光标所在行 n yy 或 n Y #從光标行向下複制 n 行 y$ #複制從光标位置到行尾 y^ #複制從光标位置到行首 yw #複制一個單詞 ynw #複制n個單詞,n為單詞個數 yl #複制光标位置的一個字符, l 是字母L的小寫形式 ynl #從光标位置向右邊複制n個字符, 光标位置也算一個字符 yh #複制光标位置左邊的一個字符,光标位置不計算在内 ynh #從光标左邊位置向左邊複制n個字符,光标位置不計算在内 dd #剪切(删除)光标所在行 ndd #從光标行向下剪切(删除)n行 d$ 或者 D #從光标位置剪切(删除)到行尾 d^ #從光标前一個位置剪切(删除)到行首 dl #剪切(删除)光标位置的字符 dnl #從光标位置向行尾方向剪切(删除)n個字符 dh #剪切(删除)光标坐标位置的一個字符 dnh #從光标左邊位置向行首方向剪切(删除)n個字符 dw #剪切(删除)光标位置的一個單詞 dnw #從光标位置向行尾方向,剪切(删除)n個單詞,光标位置的單詞也算在内 p #在當前光标後粘貼 P 或 shift p #大寫的字母p, 再當前光标前粘貼

如果是複制一行内容,再按小寫字母p則是在當前光标下一行進行粘貼,而不是在當前光标後面粘貼,同樣的,如果是按大寫字母P則是在當前光标上一行粘貼

如果一個單詞比較長,通過dw 剪切一個單詞時,剪切的是光标位置到光标位置單詞的結尾字符串

比如,現有一個字符串 9ssxphu7898%mn ,假如光标位于字符 h 位置,按dw,此時剪切的字符串是 hu7898%mn

  • 删除、替換字符

x #每次删除光标處的字符,删除之後,光标後面的字符串向光标方向移動一個位置 X #每次删除光标前面一個字符,删除之後,光标以及後面的字符串會向行首方向移動一個位置 r #替換光标位置的一個字符

替換字符的方法: 光标移動到準備替換的字符位置,按 r鍵,然後按替換之後的字符鍵,光标位置的字符就被目标字符替換了

  • 撤銷、重做

u #撤銷 ctrl r #重做

在多行操作的時候,有時候會出現誤操作,這時候可以按 u 鍵撤銷誤操作

可以多次進行撤銷,當你每按一次 u鍵的時候,之前做過的操作就會被撤銷一次

如果發現撤銷的時候進行了錯誤的撤銷操作,希望把剛才做過的事情重做一次,可以按 ctrl r鍵進行重做

  • 查找、替換

/string #查找指定字符串,按n向後查找下一個,按N向前查找下一個 /string\c #查找指定字符串,不區分大小寫,按n向後查找下一個,按N向前查找下一個 /string\C #查找指定字符串,區分大小寫,按n向後查找下一個,按N向前查找下一個 :s/old/new #用new字符串替換當前行中第一次匹配達到的old字符串 :s/old/new/g #用new字符串替換當前行中所有的old字符串 :n,ms/old/new #第n行到第m行之間,用new字符串替換每一行中第一次匹配到的old字符串 :n,m/s/old/new/g #第n行到第m行之間,用new字符串替換每一行中所有匹配到的old字符串 :%s/old/new/g #用new字符串替換文件中所有匹配到的old字符串

如果想要像windows上記事本查找替換一樣,每次替換之前有是否替換的确認,隻需要在替換命令後面加一個c字符

vim 快速入門(整理常用的vim命令)2

上面的例子中,:%s/we/WE/gc 命令是把文件中所有的we字符串全部替換成WE字符串,每次替換之前人工确認,如果把命令中的 c字符去掉,就是自動全部替換功能了

  • 執行外部命令

:! cmd #執行cmd命令 :r !cmd #執行cmd命令,把命令的結果插入光标後面一行

vim 快速入門(整理常用的vim命令)3

上面例子中,輸入 :! date 是在vim中執行 date命令,命令結果會顯示在下面,再次按 ENTER鍵回到了vim

當輸入 :r !date時,```date``命令的結果插入到光标後面一行

  • 批量處理

在可視模式下可以對文件進行批量的操作,比如: 批量選中,批量修改

我們平常用的比較多的批量操作是塊可視模式

v #字符可視模式,以字符為單位選擇 V 或 shift v #行可視模式,以行為單位選擇 ctrl v #塊可視模式,以塊為單位選擇

vim 快速入門(整理常用的vim命令)4

上面例子中,在vim中按 ctrl v進入塊可視模式,在屏幕的左下角有顯示 --可視 塊-- 字樣

接着通過 j k h l選中了第6行到第9行中,每一行的前三列這一塊字符串

然後按 shift i切換到插入模式,把前三列字符串修改為 123,修改的時候隻有第6行顯示修改過,修改完之後連續按兩次 esc鍵,前三列就全部變成了123

緊接着,再次按 ctrl v進入快可視模式,選中第6行到第9行前兩列,然後按 d鍵,就把前兩列删除了

小結

本文介紹了vim的一些常見用法,掌握這些常見用法足夠滿足工作的需要了,關于vim的命令非常多,遠遠不止本文介紹的内容,更多的用法請參考vim文檔

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved