常使用的VIM命令及文件顏色代表含義


編輯模式--->輸入模式

i : insert 在光標所在處輸入;

a:append 在光標所在處后面輸入;

o:在當前光標所在行的下方打開一個新行;

I:在當前光標所在行的行首輸入;

A:在當前光標所在行的行尾輸入;

O:在當前光標所在行的上面打開一個新行

 

移動光標(編輯模式)

1.移動光標
  h 左

  l 右
  j 下
  k 上
#h :移動#個字符

 

單詞間跳轉

  w: 下一個單詞的詞首

  e:當前或下一個單詞的詞尾

  b:當前或前一個單詞的詞首

2、行內跳轉

  0:絕對行首

  $ :絕對行尾
  ^ 行首的第一個非空白字符

3.行間跳轉
  gg 第一行
  G 最后一行

  #G : 跳轉至#行

4.刪除單個字符
  x 逐個字符刪除(刪除光標所在處及向后的單個字符)
  nx 指定刪除n個字符 (刪除光標所在處及向后的共n個字符)

  nX : 刪除光標所在處及向前的共n個字符

  xp:交換光標所在處的字符及其后面字符的位置(前后交換)

5.刪除行命令
  dd 單行刪除(剪切) 刪除當前光標所在行
  ndd n行刪除(剪切) 刪除包括當前光標所在行在內的n行
  d$

  d^

  d0

  

末行模式  n,md  指定刪除(剪切)行位置
  PS 可按p鍵黏貼


6.復制黏貼 (y,yank)
  yy 單行剪切
  nyy n行剪切
  PS 可按p鍵黏貼


7.替換命令
  r 單個字符替換
  R 多個字符替換

8.撤銷命令
  u 撤銷前一次的編輯操作操作

    連續u命令可能撤銷此前的n次編輯操作(最多50次操作)
  nu 撤銷最近n次編輯操作
  撤銷剛才撤銷的操作(返回上次一撤銷的操作):ctrl+r

  .  :重復前一個編輯操作

9.可視化模式
 什么是可視化:就是選中一塊區域,然后在上面進行一些操作,記住與普通的操作不同的是,可視化操作是對整塊選中的區域進行操作的,有些時候效率會更高。 

  v 按字符選取 (使用上下左右鍵來使用光標選定)
  V 按矩形選取
PS y  復制
PS p  黏貼
PS u 字母全部變為小寫
PS U 字母全部變為大寫
PS > 向右縮進
PS < 向左縮進

 

末行模式:內建的命令行接口

地址定界

  :start_pos,end_pos

    # :具體第#行,例如2表示第2行;

    #,# :從左側#表示行起始,到右側#表示行結尾;

    #,+# :從左側#表示的行起始,加上右側#表示的行數;

    . :當前行

    $:最后一行

       .,$-1

    % :全文,相當於1,$

/pat1/,/pat2/ :從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束

 

后跟一個編輯命令 

  d

  y

  w /PATH/FROM/SOMEFILE :將范圍內的行另存至指定文件中

    10,50w  /tmp/test/new

  r /PATH/FROM/SOMEFILE  :在指定位置(即當前光標位置)插入指定文件中的所有內容  

    100r  /etc/issue  :在指定位置即從100行處插入/etc/issue文件所有內容

 

 

 

10.查找

末行模式下:
/PATTERN向后搜索字符串PATTERN

  e.g /\<r..t\> 

?PATTERN向前搜索字符串PATTERN

  • n:向下逐個顯示匹配到的信息
  • N:向上逐個顯示匹配到的信息

 

11.查找並替換
末行模式:
n,m s/old/new/gi  或s@@@ 或s%%%

ps:  i表示大小寫不敏感查找,I表示大小寫敏感;
PS:  n:起始行   m:終止行   old:想要選擇匹配到的信息   new:想要改變的信息
PS: 從第二行到第二十行中的a全部替換為b:2,20s/a/b/g
PS: .:表示當前行  $:表示最后一行  %:表示全文

#,$ @/old/new/g :從當前#行到最后一行替換

  1,$s/r\(..\)t/R\1T/g
  %s/l....x/&er/

  &: 直接引用前面所有匹配內容
注:
  要查找的內容:可使用模式
  替換為的內容:不可使用模式,但可以使用\1,\2,...等后向引用符號,還可以使用"&"引用前面查找時查找到的整個內容

 

12.使用vim編輯多個文件
vim file1 file2 file3...
PS:先打開file1,若想編輯file2,可在末行模式下輸入next
若文件有很多個,則可以在末行模式下輸入last(最后一個文本) first(第一個文件)等對應的英文

 若文件有很多個,則可以在末行模式下輸入
  • :next 切換至下一個文件
  • :prev 切換至前一個文件
  • :last 切換至最后一個文件
  • :first 切換至第一個文件
  • 退出 :qa 全部退出

 

13 .窗口分割模式
vim -O file1 file2    垂直分割顯示

vim -o file1 file2    水平分割顯示

ctrl+w+上下鍵,來回切換窗口

單文件窗口分割:
  ctrl
+w+s 水平拆分窗口   ctrl+w+v 垂直拆分窗口 在窗口間切換光標 ctrl+w w 切換窗口 ctrl+w q 退出當前窗口

   :qa 關閉所有窗口

vim保存之前不會對文件做實際的修改,只是加載到緩沖區中,對文件的編輯其實是對緩沖區的編輯,直到:w時才會存入物理文件

 

14.跟shell交換
末行模式下:
!COMMAND (要執行的shell)

15.高級會話
末行模式下:

 (1)顯示或取消行號:顯示 set nu  取消 set nonu
  

 (2)設定自動縮進:  設定 set ai       取消 set noai
   

 (3)查找到的文本信息高亮:設定 set hlsearch 取消 set nohlsearch
         語法高亮:設定 syntax on    取消 syntax off

 (4)括號匹配
    匹配:set sm (set  showmatch)
    取消: set nosm
(5)忽略字符的大小寫
    啟用:set ic
    不忽略:set noic

 

 

16.文件加密
末行模式下:
設定 X
取消 X 一直回車

17.配置文件
/etc/vimrc 全局文件
~/.vimrc  在自己家目錄下僅對該用戶設置

 

練習

替換/tmp/functions文件中的/etc/sysconfig/init為/var/log

  :%s@/etc/sysconfig/init@/var/log@g

刪除/tmp/functions文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號
  :%s/^#\([[:space:]]\)\+/\1/g

每行開頭為空白字符的行的行首添加一個#號
  :%s/^[[:space:]]\+/#&/

如何設置tab縮進為4個字符?

# 永久設置(設置后重新打開文件編輯即可生效) [root@wybaron_host1015 ~]# echo -e "set ts=4\nset expandtab" >> /etc/vimrc

將文本文件中的TAB替換為空格   

# 命令行模式下 :set ts=4 :set expandtab :%retab! # 加!是用於處理所有的TAB,若不加!,則只處理行首的TAB

將文本文件中的空格替換為TAB

# 命令行模式下 :set ts=4 :set noexpandtab :%retab! # 加!是用於處理所有的TAB,若不加!,則只處理行首的TAB
 
        

    https://my.oschina.net/comics

 

更詳細請參考:http://note.youdao.com/noteshare?id=04b6d3beacfd1f5c0aa14485c32cf4a7&sub=11F0136F9D0548C38A0DD116EC80D654

配置自己vim請參考: https://blog.csdn.net/zisefeizhu/article/details/89407487


 

文件顏色及類型
文件不同顏色所代表的不同含義:
白色: 普通顏色
紅色: 壓縮文件
黃色: 設備文件(/dev目錄下)
青藍色:鏈接文件
青綠色:可執行文件
青黃色:管道文件
粉紅色:圖片文件或socket(用s表示)
文件類型:
- :普通文件
l(小寫L):鏈接文件
b :塊文件【塊設備文件】
c :字符設備文件
p :管道文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM