vi 編輯器筆記,vi編輯器

來源:互聯網
上載者:User

vi 編輯器筆記,vi編輯器

摘要:

  vi從安裝到使用

  vi從菜鳥到高手

0、 vim - Vi IMproved, a programmers text editor

分為 VI和VIM,現在流行的發行版裡面VI=VIM

是一個文字編輯器(所有沒有圖片的文本,純文字內容,無視尾碼名)

不能編輯二進位檔案

不能編輯目錄

Debian系安裝vim的時候:

apt install vim

 

1、目前整個地球上只有一個地方不預設安裝vi

  Docker 鏡像Images 的容器

2、查看VI版本

  在命令列:"vi --version"

  在文本裡面:":version"

3、使用步驟

1.vi filename

vi 後面加檔案名稱  //若存在,則直接開啟編輯,若 不存在,則建立一個檔案

2.進入插入模式

鍵入 "i" 鍵,建議按i鍵

也可鍵入 "s"鍵,但是s鍵是刪除當前游標的字元後,再進入插入模式

3. 插入資料

4. 敲 "Esc"鍵,或者鍵入按鍵組合 "^[" (Ctrl-[)進入命令模式

小訣竅:按按鍵組合的時候,一定要先按前面的輔助鍵不放,然後再按功能鍵

5. 輸入 ":" ,然後鍵入 "x/wq/w/q!/q/qa/qa!"

命令

說明

狀態

x

儲存並退出

 

wq

儲存並退出

 

w

儲存

 written

q!

強制退出並不儲存

 

qa!

等價於q!

 

q

退出

 

qa

等價於q

 

  快捷退出:

  ^w   q    // Ctrl+w   q

  等價於 :q

4、狀態行

當前編輯視窗的最後一行被稱為狀態行

用於顯示檔案名稱

顯示行、列

顯示字元的個數

5、三種模式

  插入模式

i

進入插入模式

  命令模式

^[ 或 Esc

進入命令模式

  末行模式

:

進入末行模式

 

  插入模式

i

在當前位置插入資料

a

游標位置後面插入資料

A

本行行尾插入資料

o

游標所在行的下一行插入資料

O

游標所在行的上一行插入資料

s

刪除游標所在位置字元並在游標後插入資料

S

刪除游標所在行並在行首插入資料

cw

刪除當前游標所在單詞並進入插入模式

6、在檔案中移動游標

  上下左右

h

l

j

k

  行首行尾

^

行首,非Null 字元位置,不包含空格

0

行首,Null 字元處,包含空格

$

行尾,Null 字元處,包含空格

g_

行尾,非Null 字元位置,不包含空格

  文首文尾

gg

文首

G(shift+g)

文末

 

  螢幕頭部中間底部

H(shift+h)

頂行

M(shift+m)

中間行

L(shift+l)

底行

  翻屏

^f

往下翻一屏

^b

忘上翻一屏

 

  撤銷

u

撤銷一次操作

1 change; before #19  22 seconds ago

^r

反撤銷一次操作

1 change; after #19  33 seconds ago

  刪除

x

刪除游標所在處的一個字元

dw

刪除游標所在處的一個單詞

D(shift+d)

刪除游標所在處後面所有的字元

dd

刪除當前行

Ndd

刪除N行

dw

刪除一個單詞

  複製粘貼

yy

複製一行

p

粘貼

v-w-y

複製一個單詞

v-y

複製一個字元

 

7、尋找一個字串

  鍵入 "/" 進入尋找模式,然後在後面鍵入需要尋找的字串

n

跳到下一個字串

N

跳到上一個字串

8、替換

:s/old/new

在一行內將第一個old替換為new

:s/old/new/g

在一行內將所有old替換為new

:s/old/new/gc

在一行內將所有old替換為new時每個都確認一下

:%s/old/new/g

在檔案內將所有old替換為new

:%s/old/new/gc

在檔案內將所有old替換為new時每個都確認一下

  小訣竅:在":"模式的時,鍵入 "^p/^n"或"↑/↓"選擇已經執行過的命令

9、簡單設定

  在 ":"模式使用

行號

set nu(number)

set nonu

唯讀

set readonly

縮排

set paste

 

10、使用分級

等級

生命週期

要求

備忘

第一級

能吃飯

安裝

啟動

看文檔

知道進入之後的常用操作

上下左右

刪除

複製

粘貼

插入

退出

 

第二級

有肉吃

各種插入你都會

移動游標滿天飛

複製粘貼擒拿手

取消操作你不行

出入自由紅牌樓

 

第三級

吃香喝辣

更好

各種重複

更強

各種跳

更快

到處飛

 

第四級

有人買單

成神

 

11、擴充

  1.自動提示

^p

調出自動提示視窗,向上一行一行操作

^n

調出自動提示視窗,向下一行一行操作

^m

確認

  2.塊操作

^v

進入塊操作

使用塊操作在所有行前面加上 ##

^v

-> shift-i

-> ##

-> ^[

3.可視化選擇

v

進入可視化選擇

V

選擇一行

4.縮排

<

左縮排

>

右縮排

5.分屏

^w s  / :sp

分橫屏

^w v / :vs

分豎屏

^w q

退出

^w hjkl

屏之間切換

 

6.建立新檔案

通過vi的命令模式,在當前開啟的檔案裡面,使用":"命令之後,

鍵入 :new file_name 然後即可在當前視窗新建立一個分屏的file_name檔案視窗

此時你可以通過 ^w  jklm進行上下切換,也可以自由地在多個檔案中進行複製粘貼 

7.其它進階小訣竅

1、對沒有許可權的檔案修改的儲存(使用": w !sudo tee %" ):

your@your:/etc/apt$ vi 1111

插入資料之後,鍵入命令模式i(":")

操作:

": w !sudo tee %"

-> 按 "O" 或 "L" 均可

:r !uname -a    // 插入執行命令之後顯示的內容到本文本

:w !sudo tee %

//提權並儲存編輯好來的文檔

執行過程:

Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

 

W13: Warning: File "11111" has been created after editing started

[O]K, (L)oad File:

 

:w !sudo tee %

 

Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

 

W13: Warning: File "11111" has been created after editing started

 

Press ENTER or type command to continue

your@your:/etc/apt$ cat 11111

 

Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

your@your:/etc/apt$

2、鎖屏模式編輯vi

^s

鎖屏,終止螢幕終端回顯

^q

恢複正常模式

  注意:如果鍵盤熟悉度不高,也就是說打字速度低於150,或者錯誤率高於1%,建議不要觸碰此等高度危險操作,不然後果自負

3、其它補充:

1、vi 設定檔和搜尋模式時的高亮顯示小結:

設定檔:

your@your:~$ cd

your@your:~$ ll .vimrc

-rw-rw-r-- 1 your your 31 Aug  7 04:13 .vimrc

.file_name

"." 在linux裡面代表隱藏檔案

  通過 ls -a 可以查看隱藏檔案

  -a, --all

               do not ignore entries starting with .

  更改vi顯示,可以有兩種模式:

臨時

在檔案內

永久

在.vimrc設定檔內

 

    鍵入符合vi的文法

      搜尋模式的高亮顯示:

永久:

1、vi .vimrc

2、set hlsearch

臨時:

1、vi file_name

2、: set hlsearch

永久:

1、vi .vimrc

2、刪除 set hlsearch 或者注釋

  說明:.vimrc的設定檔裡面," 雙引號代表注釋

  一個文法高亮和開啟行號顯示、搜尋高亮顯示的demo:

  2、vi搜尋模式前後說明:

/

向後搜尋

n:下一個

N:上一個

?

向前搜尋

n:上一個

N:下一個

 

    向前 <----"N"---- "?"--"n"--- souce ----"N"---"/" -----"n"---> 向後

 

 

  3、在vi、mysql中執行linux命令:

環境

方法

說明

vi

:! linux_command

新建立有視窗執行命令

mysql

\! linux_command

system linux_command

在當前mysql互動介面執行命令

注意:\! 與命令之間有空格,否則會出現:

mysql> \!pwd

ERROR:

Usage: \! shell-command

mysql> \! pwd;

/home/huhua

mysql>

      system    (\!) Execute a system shell command.

 

  4、進階功能:使用SSH服務登陸遠程主機:

mysql

system ssh core@192.168.28.144

vi

! ssh core@192.168.28.144

  5、vi 插入":"模式執行命令的輸出到vi當前文本裡面

    :r !linux_command

    包括ping都可以匯入到文本裡面,只是ping的輸出不明文顯示

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.