【Linux@基礎篇 ~】# vi/vim 命令

來源:互聯網
上載者:User

標籤:

今天開始學習Linux,學習過程中我會在這裡記下一些學習筆記,先從基礎的學起,萬事開頭難,因此我會堅持!當下Linux系統已經有很多版本了,Linux其實就是Unix的衍生版本,以L開頭是因為它的創始人Linus,Unix是Unique + X版本號碼的縮寫...關於Unix和Linux的起源有很長的電腦史要講,本教程不講曆史,只談技術哦。本教程本著先易後難的原則進行的,所以基礎命令篇以Red Hat 6.0 企業版為實驗機器。先從基礎命令和系統管理學起,循序漸進,後面會有shell指令碼編程、伺服器架構、嵌入式Linux開發以及各種版本Linux系統的差別等進階應用程式,期待一下吧,今天是第一篇,我們先介紹Linux下最常用文本編輯命令vi/vim命令, vim(vi VImproved)是vi的升級版本。在新版本的RHEL6.0 中vi命令已經整合了vim的更新功能,兩個命令式完全一樣的。 Hope you to enjoy it, Let‘s go...vi/vim 命令1、簡介1.1 命令簡介

vi -h 我們可以看到如下關於vi的協助

usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin #從標準輸入中讀入text shell編程中使用
   or: vim [arguments] -t tag          edit file where tag is defined #直接尋找某函數或變數,並開啟包含這個tag的檔案。設定tag 需用ctags命令產生tags list後才能使用

   大家可以用gcc編一個c的程式測試一下,還是很好用的。
   or: vim [arguments] -q [errorfile]  edit file with first error #編輯錯誤檔案,游標直接定位到第一個錯誤

Arguments:
   --                   Only file names after this
   -v                   Vi mode (like "vi")   #直接進入 vi編輯模式
   -e                   Ex mode (like "ex")  #直接進入 末行模式
   -s                   Silent (batch) mode (only for "ex")
   -d                   Diff mode (like "vimdiff")             #比較有用,可以對比兩個或多個檔案,具有代碼對比功能
   -y                   Easy mode (like "evim", modeless)  #直接進入 vi編輯模式
   -R                   Readonly mode (like "view")  #唯讀模式
   -Z                   Restricted mode (like "rvim")
   -m                   Modifications (writing files) not allowed
   -M                   Modifications in text not allowed
   -b                   Binary mode
   -l                   Lisp mode
   -C                   Compatible with Vi: ‘compatible‘
   -N                   Not fully Vi compatible: ‘nocompatible‘
   -V[N][fname]         Be verbose [level N] [log messages to fname]
   -D                   Debugging mode
   -n                   No swap file, use memory only
   -r                   List swap files and exit
   -r (with file name)  Recover crashed session
   -L                   Same as -r
   -A                   start in Arabic mode
   -H                   Start in Hebrew mode
   -F                   Start in Farsi mode
   -T <terminal>        Set terminal type to <terminal>
   -u <vimrc>           Use <vimrc> instead of any .vimrc
   --noplugin           Don‘t load plugin scripts
   -p[N]                Open N tab pages (default: one for each file) #開啟多個檔案tab格式, 末行模式中N/n切換上一個tab或下一個tab
   -o[N]                Open N windows (default: one for each file)   #開啟多個檔案視窗格式, 末行模式中N/n切換上一個win或下一個win
   -O[N]                Like -o but split vertically  #開啟多個檔案視窗格式(豎版), 末行模式中N/n切換上一個win或下一個win
   +                    Start at end of file   #開啟檔案游標直接定位到檔案尾
   +<lnum>              Start at line <lnum>   #開啟檔案游標直接定位到第<lnum>行
   --cmd <command>      Execute <command> before loading any vimrc file
   -c <command>         Execute <command> after loading the first file
   -S <session>         Source file <session> after loading the first file
   -s <scriptin>        Read Normal mode commands from file <scriptin>
   -w <scriptout>       Append all typed commands to file <scriptout>
   -W <scriptout>       Write all typed commands to file <scriptout>
   -x                   Edit encrypted files
   --startuptime <file> Write startup timing messages to <file>
   -i <viminfo>         Use <viminfo> instead of .viminfo
   -h  or  --help       Print Help (this message) and exit
   --version            Print version information and exit

1.2 常用的三種模式

vi編輯器主要有三種模式:

編輯模式:自由輸入常值內容,和普通操作文本類似

命令模式:通過命令直接編輯和控制文本游標

末行模式:通過命令儲存檔案或退出vi編輯器,即在螢幕最下面冒號後輸入的命令

1.3 模式之間的切換

命令模式 -> 編輯模式

使用命令vi filename開啟vi編輯器,首先進入的是命令模式。通過使用使用編輯按鍵(a, i, o 等後面會介紹)自動進入編輯模式。

編輯模式 -> 命令模式

按[ESC]鍵退出編輯模式進入命令模式

命令模式 -> 末行模式

按[:] 直接可輸入末行模式中的命令

末行模式 -> 命令模式

按[ESC]鍵退出末行模式進入命令模式

2、命令模式2.1 游標定位命令

H 游標前移一個字元

J 游標下移一行

K 游標上移一行

L 游標後移一個字元

0 游標移動到行的最前面

$ 游標移動到行的最後面

w 移動到下一個單詞的第一個字母

e 移動到下一個單詞的最後一個字母

b 移動到上一個單詞的第一個字母

^ 移動到當前游標所在行的第一個非Null 字元

[n]- 上移n行 (不加n 上移一行)

[n]+ 下移n行 (不加 n 下移一行)

nG 移動到第n行

[ctrl] d 下移半頁

[ctrl] f  下移一頁

[ctrl] u 上移半頁

[ctrl] b 上移一頁

 

fx 向右移動到x字元

Fx 向左移動到x字元

tx 向右移動到x字元前

Tx 向左移動到x字元前

; 重複一次fx/Fx操作

, 反方向重複一次fx/Fx操作

 

按下[/]末行輸入需要尋找的關鍵詞,按[Enter]尋找, 操作類似於末行模式

/x 向下尋找有x字元的位置

?x 向上尋找有x字元的位置

n 重複一次

N 反方向重複一次

 

[n]( 移動到上一個句子的第一個字元,空白段落也會當做一個句子,以!.?作為界定

[n]) 移動到下一個句子的第一個字元,空白段落也會當做一個句子,以!.?作為界定

[n]{ 移動到上一個段落的第一個字元,空白段落也會停頓一次,以空白行作為界定

[n]} 移動到下一個段落的第一個字元,空白段落也會停頓一次,以空白行作為界定

**n可選跳轉n行

 

2.2 文本修改命令

編輯插入模式與編輯替換模式通過[insert]鍵切換

a 從游標所在位置之後開始新增內容,進入編輯插入模式

A 從游標坐在行之後開始新增內容,進入編輯插入模式

i  從游標所在位置之前開始新增內容,進入編輯插入模式

I 從游標坐在行之前開始新增內容,進入編輯插入模式

o 在游標所在行新增一行開始新增內容,進入編輯插入模式。

O 在游標所在行上面新增一行開始新增內容,進入編輯插入模式。

x 刪除游標所在字元

dd  刪除游標所在行(確切的說是剪下)可以通過p粘貼 ndd 向下刪除n行

cc 刪除游標所在行(確切的說是剪下)可以通過p粘貼 進入編輯模式

yy 複製一行 nyy 複製游標下n行

p 粘貼緩衝區的內容,複製到游標後

P 粘貼緩衝區的內容,複製到游標前 (大寫P)

r 進入編輯替換模式,輸入內容直接替換內容,只能替換一個,替換完成後即回到命令模式

R 進入編輯替換模式,輸入內容直接替換內容,替換多個,需要手動回到命令模式

s 刪除游標所在字元,並進入編輯模式

S 刪除游標所在行,並進入編輯模式

u 撤銷最近一次修改,可操作多次

U 撤銷對當前行的所有修改

[Ctrl] + R 重做撤銷內容

 

d y c + 定位 組合命令

定位可以是下列幾個:
    e     游標所在位置到該字的最後一個字母     ex. ye常用語複製一個單詞

    w     游標所在位置到下個字的第一個字母     

    b     游標所在位置到上個字的第一個字母     

    $     游標所在位置到該列的最後一個字母     

    0     游標所在位置到該列的第一個字母     

    )     游標所在位置到下個句子的第一個字母     

    (     游標所在位置到該句子的第一個字母     

    }     游標所在位置到該段落的最後一個字母
    {    游標所在位置到該段落的第一個字母

3、末行模式(行命令模式)3.1 儲存退出命令

q!不儲存退出

wq!儲存退出

不加驚嘆號按提示資訊操作確認/取消

ZZ 儲存退出,無提示

3.2 文本替換

:s/vivian/sky/ 替換當前行第一個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

** n 為數字,若 n 為 .,表示從當前行開始到最後一行

:%s/vivian/sky/ 替換每一行的第一個 vivian 為 sky

:%s/vivian/sky/g 替換每一行中所有 vivian 為 sky (g是貪婪匹配,正則用法)

:s#vivian/#sky/# 替換當前行第一個 vivian/ 為 sky/ 也可以使用+ 來作為分隔字元代替/(替換文本中/)

3.3 配置編輯器

在末行模式下可以使用set命令對vi做一些配置,常用的有:

:set nu顯示行號 
:set nonu隱藏行號 
:set ic設定搜尋時忽略大小寫 
:set noic搜尋時對大小寫敏感 
:set list顯示不可視字元 
:set nolist不顯示不可視字元 
:set showmode顯示當前操作模式 
:set shownomode不顯示當前操作模式 
:set all顯示所有的vi環境變數設定

:set fileformat=unix   #將檔案修改為unix格式,如win下面的文字檔在linux下會出現^M。

在行命令模式中設定的配置都不能儲存,如果需要儲存我們需要在$HOME/下新增一個.vimrc的設定檔,.開標頭檔預設隱藏檔案,ls -a查看:

echo "set nu" >> .vimrc

這樣vi編輯器中就預設顯示行號了

vi自訂設定檔可以擴充很多功能,大家可以參考這篇文章

http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html

 

3.4 編輯其他檔案

:e otherfilename

直接切換當前編輯檔案為另外一個檔案,需要先儲存當期檔案:w

 

4、總結

本文只是簡單了介紹vi編輯器常用的一些功能和操作命令,老外可以把vi編輯器寫成一本書,what‘ a awesome one! 其實能熟練掌握vi常用的一切操作已經很不容易了。萬事開頭難,這個編輯器不像windows中的記事本那麼友好,但是功能灰常強大,就像學五筆一樣,剛開始很痛苦,學成了就天下無敵了!好了就到這裡了,如果以後有補充的,我會繼續新增內容。下一次我們學習Linux檔案操作命令。

 

【[email protected]基礎篇 ~】# vi/vim 命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.