VIM 使用

VIM 介紹

  • vim是vi的升級版本,vi支持的vim一樣支持,可是vim是支持顏色顯示的。(下圖是以vim顯示的,能夠看到明顯區別)

輸入圖片說明

  • vim 也是有通常模式,編輯模式,命令模式的

通常模式:能夠進行復制,刪除等操做linux

編輯模式:就是按 「i」 或者 「a」 ,就是正常的編輯文檔了。面試

命令模式:能夠進行搜索關鍵詞,和查找替換等操做,或者保存退出,強制退出等shell

vim的安裝

  • 默認系統不自帶vim,須要手動安裝。安裝方法:yum install -y vim-enhanced

 

 

 

vim顏色顯示與光標移動

vim 顯示顏色的改變

  • vim查看一個同一個文件的顏色顯示可能會收到所在目錄的變化而變化。下面試一下 /etc/passwd這個文件來看

輸入圖片說明

而後把這個文件cp到/tmp/下,而後再vim看下:編程

[root@localhost ~]# cp /etc/passwd  /tmp/
[root@localhost ~]# vim /tmp/passwd

輸入圖片說明

  • vim顯示顏色改變也會根據文件內容而改變,如今往/tmp/passwd 文件裏面加上以#號開頭的文件測試一下:

輸入圖片說明

能夠看到雖然變化不大,可是也是有顏色顯示了。vim

  • vim顯示顏色改變還會根據文件的名字而改變。好比改動文件名字後綴。把/tmp/passwd 後面加上.sh

輸入圖片說明

顏色又以另外一種方式顯示了。瀏覽器

  • 實際上在/etc/vimrc這個配置文件裏是規定了vim的一些配色方案的。瞭解便可。

輸入圖片說明

vim的光標移動

  • h 或者向左的方向鍵 -----------------------光標向左移動一個字符
  • l 或者向右方向鍵 --------------------------光標向右移動一個字符
  • k 或者向上方向鍵 -------------------------光標向上移動一個字符
  • j 或者向下方向鍵 --------------------------光標向下移動一個字符
  • Ctrl+f或者PageUp鍵 -----------------------屏幕向前移動一頁
  • Ctrl+b或者PageDown鍵-------------------屏幕向後移動一頁
  • 數字0或者Shift+6 --------------------------移動到本行行首
  • Shift+4 ----------------------------------------移動到本行行尾
  • gg ----------------------------------------------移動到首行
  • G -----------------------------------------------移動到尾行
  • nG(n是任意數字) ---------------------------移動到第n行

方向鍵的移動也是能夠添加數字的,好比5h ,就是從當前光標出向左移動5格。3k就是從當前光標處向上移動三格。session


 

 

 

通常模式下複製粘貼

  • x和X ---------------------------------------x表示向後刪除一個字符,X表示向前刪除一個字符
  • nx -----------------------------------------向後刪除n個字符
  • dd -----------------------------------------刪除/剪切光標所在的那一行
  • ndd ---------------------------------------刪除/剪切光標所在行以後的n行
  • yy ----------------------------------------複製光標所在行
  • p -----------------------------------------從光標所在行開始,向下粘貼已經複製或粘貼的內容
  • P -----------------------------------------從光標所在行開始,向上粘貼已經複製或粘貼的內容
  • nyy ---------------------------------------從光標所在行開始,向下複製n行
  • u -----------------------------------------還原上一步操做(最多能夠恢復50次)
  • Ctrl+r -----------------------------------還原下一步操做,(像瀏覽器裏的左返回,右返回的右返回)
  • v -----------------------------------------按v後移動光標會選中指定字符,而後能夠實現複製,粘貼等操做。

 

 

 

vim 的三種經常使用模式

通常模式

  • 移動光標位置app

  • 刪除,複製,粘貼編輯器

進入編輯模式

  • "i" 當前字符前插入
  • "I" 在光標所在行的行首插入
  • "a" 在當前字符後插入
  • "A" 在光標所在行尾插入
  • "o" 在當前行的下一行插入新的一行
  • "O" 在當前行的上一行插入新的一行
  • "Esc鍵" 退出編輯模式

進入命令模式

  • 退出編輯模式到通常模式後按「 : 」或者「 / 」鍵便可進入命令模式

用法:

  • /word 在光標以後查找一個字符串word,按n向後繼續搜索

輸入圖片說明

輸入圖片說明

  • ?word 在光標以後查找一個字符串word,按n向後繼續搜索(同/word)
  • :n1,n2s/word1/word2/g 在n1和n2行以前查找word1並替換爲word2,不加「g」則只替換每行的第一個word1
  • 1,$s/word1/word2/g 將文檔中全部的word1替換爲word2,不加g則只替換每行的第一個word1

其餘用法:

  • :w --------------------保存文本
  • :q --------------------退出vim
  • :w! -------------------強制保存,在root用戶下,即便文本只讀也能夠完成保存
  • :q! -------------------強制退出,全部改動不生效
  • :wq ------------------保存並退出(會更改時間戳)
  • :set nu --------------顯示行號
  • :set nonu -----------不顯示行號
  • ZZ --------------------保存退出
  • ZQ --------------------不保存退出,q表示放棄
  • :x ---------------------保存退出,若是內容未改,不會更改時間戳

":x" 和 ":wq" 的區別以下:測試

(1) :wq 強制性寫入文件並退出(存盤並退出 write and quite)。即便文件沒有被修改也強制寫入,並更新文件的修改時間。

(2) :x 寫入文件並退出。僅當文件被修改時才寫入,並更新文件修改時間;不然不會更新文件修改時間。 這二者通常狀況下沒什麼不同,可是在編程方面,對編輯源文件可能會產生重要影響。由於文件即便沒有修改,":wq" 強制更新文件的修改時間,

這樣會讓 make 編譯整個項目時覺得文件被修改過了,而後就得從新編譯連接生成可執行文件。這可能會產生讓人誤解的後果,固然也產生了沒必要要的系統資源花銷。不過像是版本控制的軟件通常首選仍是比較文件內容,修改時間通常不加以理會。


vim裏經常使用的快捷鍵

1,註釋全部的行:ctrl+v j/k+ shift +i

2,查看光標當前的man手冊 shift+k

3,d+f+字符

4,選中面積 v+t+字符

5,在vim裏面刪除光標後的全部字符 shift+d

6,刪除當前光標上的單詞 d+i+w

7,選中當前光標上的單詞 v+i+w


vim 粘貼代碼自動縮進致使全亂了怎麼辦

  • 用vim打開一個空白文檔,而後把已經複製的代碼給粘貼進來,發現它有自動縮進功能,最終致使粘貼的文本一行比一行靠右,看起來亂成一團。比較快的解決辦法是,在粘貼文檔前,在命令行模式下,輸入
:set noai nosi
  • 有時候,這樣的方法很差用,能夠嘗試這種:
:set paste

客戶端putty, xshell鏈接linux中vim的小鍵盤問題

在putty上用vi的時候,開NumLock時按小鍵盤上的數字鍵並不能輸入數字,而是出現一個字母而後換行(其實是命令模式上對應上下左右的鍵)。解決方法

  • 選項Terminal->Features裏,找到Disable application keypad mode,選上就能夠了

  • 在xmanager 4 中的xshell也有小鍵盤問題 解決方法爲

修改session 屬性 -> 終端->VT模式->初始數字鍵盤模式

選擇 設置爲普通。


Linux用vim/vi給文件加密和解密

1、 利用 vim/vi 加密:

優勢:加密後,若是不知道密碼,就看不到明文,包括root用戶也看不了;

缺點:很明顯讓別人知道加密了,容易讓別人把加密的文件破壞掉,包括內容破壞和 刪除;

vi編輯器相信你們都很熟悉了吧,vi裏有一個命令是給文件加密的,舉個例子吧:

1) 首先在root主目錄/root/下創建一個實驗文件text.txt:

[root@www ~]#  vim/vi  text.txt

2) 進到編輯模式,輸入完內容後按ESC,而後輸入:X(注意是大寫的X),回車;

3) 這時系統提示讓你輸入密碼,2次,以下所示:

輸入密碼: *******
請再輸入一次: *******

4) 保存後退出,如今這個文件已經加密了;

5) 用cat或more查看文件內容,顯示爲亂碼;用 vim/vi 從新編輯這個文件,會提示輸入密碼,若是輸入的密碼不正確,一樣會顯示爲亂碼! 注意:文件加密後,千萬別忘了密碼!

  • 2、 解密用vi加密的文件(前提是你知道加密的密碼):

1) 用 vim/vi 打開文件如text.txt,要輸入正確的密碼,而後在編輯時,將密碼設置爲空,方法是輸入下面的命令:

:set key=

而後直接回車,保存文件後,文件已經解密了。

2) 或者這樣也行:

在正確打開文件後用 「:X」 指令,而後給一個空密碼也能夠。保存用「wq!」保存。 兩種方法實際上效果是同樣的。


vim編輯器裏面一些鮮爲人知的操做

1.vim編輯器的替換模式與可視模式 在通常模式下按鍵盤上的r和R進入替換模式。若是按小r那麼這時候就進入了替換模式,你下一個輸入的字符會把你當前光標所在處的字符替換,而後自動退出替換模式。若是你按的是大R那麼你下面輸入的全部字符會把後面的字符依次替換,直到按退出替換模式。

在通常模式下按鍵盤上的v和V進入可視模式。若是是按小v那麼這時候就時入了視圖模式,這時候你移動光標會把你光標所在處到光標結尾處的全部字符選中,這時候能夠進行復制,刪除等操做。若是是按大V一樣也是進入了視圖模式,這時候移動光標會把光標所在行到光標結尾的行的全部內容選中,也能夠進行復制,刪除等操做。

注意:使用在通常模式使用「ctrl+v」組合鍵能夠進入塊操做模式 在這個模式下和可視模式差很少,可是選擇的內容不一樣,你們可實際操做看看 2.刪除從光標所在處到行尾字符

在通常模式下輸入大寫「D」或者輸入「d$」

3.刪除從光標所在處到行首字符

在通常模式下輸入大寫「d^」

4.刪除從光標所在行到文件末尾行

在通常模式下輸入大寫「dG」

5.刪除指定範圍內全部行

例:刪除10到15行的全部內容 在通常模式下輸入「:10,15d」回車

6.把正在編輯的文件另存爲新文件

例:把正在編輯的文件另存爲到「/root/」下面並保存爲1.txt 在通常模式下輸入「:w /root/1.txt」 例:把正在編輯的文件的第10行到第15行另存爲1.txt並保存到root目錄下在通常模式下輸入「:10,15 w /root/1.txt」

7.把其它文件的內容導入到正在編輯的文件的光標所在處

例:把「/root/1.txt」 文件的內容,導入到下在編輯的文件的第10行下面 首先在通常模式下按「10G」把光標定位到第10行 而後按「o」小寫,當前行的下面另起一行,並進入插入模式 最後按鍵盤上的返回到通常模式,再輸入「:r /root/1.txt」回車

8.正在編輯文件時,不退出文件仍能夠運行linux命令

列:我下在編輯一個文件,但這時候我想查看「/root/1.txt」 文件的內容,可是我不想退出我正在編輯的文件,那麼咱們能夠這樣 在編輯模式下輸入「:! cat /root/1.txt」

9.把命令的執行結果導入到正在編輯的文件的光標所在處

這題咱們能夠結合上面兩題,在通常模式下輸入「:r ! cat /root/1.txt」

10.查找替換的功能使用

例:在10到15行的行首增長「#」 在通常模式下輸入「:10,15s/^/#/」 例:在10到15行的行首去掉「#」 在通常模式下輸入「:10,15s/^#//」 例:在10到15行的行首增長「//」 在通常模式下輸入「:10,15s/^////」或者「:10,15s@^@//@」或者「:10,15s#^#//#」

注意:在上面全部命令的最後面均可以加g或者c一塊兒配合使用,g的意思是行中出現的全部指定字符都替換,可是若是加了g那麼前面就不能出現位置定義字符,反以前面出現的位置定義字符,那麼後面就不能夠出現g。在後面加c能夠跟用戶交互,在查找到符合命令的字符提示用戶是否替換,須要用戶確認,不然不須要確認

11.把輸入的指定字符替換爲指定的字符

例:在編輯一個文檔的時候,我要頻繁的輸入「abcdefghijklmnopqrstuvwxyz」這樣的連續字符串,這時候我想只輸入一個或者一串指定字符就能夠替換爲剛纔的字符,好比我指定輸入「aming」系統就會自動把「aming」替換成「abcdefghijklmnopqrstuvwxyz」 在通常模式下輸入「:ab aming abcdefghijklmnopqrstuvwxyz」而後回車,再進入編輯模式,當你輸入「aming」的時候就會發現自動替換成了「abcdefghijklmnopqrstuvwxyz」

12.快捷鍵的定義

例:我想在通常模式下按鍵盤上的ctrl+b快捷鍵,會自動在光標所在行的行首插入「#」號,而後自動退出到通常模式 在通常模式下輸入「:map ctrl+v ctrl+b I # 」而後回車,這時候在通常模式按鍵盤上的ctrl+b的時候就會在光標所在的行首插入「#」號了

注意:命令中ctrl+v和ctrl+b是鍵盤上的組合鍵,不是輸入進去的字符,是須要按的組合鍵,其中第一個ctrl+v就照按,第二個ctrl+b是要定義的快捷鍵,根據本身須要的設置按。而後「I」的意思就是通常模式下的「I」進入插入模式並將光標移動到行首,而後接着輸入「#」號,後面「」的意思是退出編輯模式

13.同進編輯兩個文件或者

例:我現正在編輯1.txt文件,而後我想再打開root目錄下的2.txt同時編輯,並把窗口上下水平分隔,一塊兒顯示 在通常模式下輸入「:new /root/2.txt」

例:我現正在編輯1.txt文件,而後我想再打開root目錄下的2.txt同時編輯,並把窗口左右垂直分隔,一塊兒顯示 在通常模式下輸入「:vsplit /root/2.txt」

注意:在通常模式下按「ctrl+w」組合鍵,再按左右,或者上下方向鍵,能夠在不一樣窗口之間切換若是在通常模式下輸入「:only」那麼只保留當前正在編輯的窗口,其它全關閉

15.在vim查找關鍵字時不區分大小寫

在通常模式下輸入「:set ic」 若是想取消就輸入「:set noic」

16.如何把文件設置成只讀文件,只有強制保存時才能保存

在通常模式下輸入「:set readonly」

17.把文件恢復到打開時的狀態

在通常模式下輸入「:e!」

18.配置文件的使用 以上那麼多操做,像設置忽略大小寫,設定快捷鍵,設定自動替換,等一些操做,當電腦重啓後就沒有了。這時候咱們能夠把這些命令寫入配置文件,這樣電腦重啓後仍是可使用,咱們有兩種方法 第一種:全部用戶都統一 修改「/etc/vimrc」文件,在末尾加入須要設置的命令,就是我紅色標註的部分 第二種:只對當前用戶 修改用戶家目錄下的「.vimrc」文件,注意有個點,這是隱藏文件,通常用戶家下沒有,須要本身手工建立

相關文章
相關標籤/搜索