vi命令使用

2022-03-30 00:33:14 字數 4399 閱讀 1916

vi命令

三種工作模式:

2、輸入模式:鍵盤中的任意乙個鍵都當成文字內容;

3、末行模式:鍵盤中的任意乙個鍵都當成文字管理命令;

退出輸入模式:esc 

命令模式進入輸入模式:

i:插入游標前乙個字元;

i:插入行首;

a:插入游標後的乙個字元;

a:插入行末;

o:向下新開一行,插入行首;

o:向上新開一行,插入行首;

命令模式進入末行模式按冒號:

末行模式進入命令模式:兩次esc。

儲存退出:

1、命令模式下:zz

2、末行模式下:

:wq  儲存退出

:x儲存退出;

:q!強制不儲存退出

:q 退出

命令模式下游標的移動:

k:上j:下

h:左l:右

g:游標到末尾位置;

gg:游標移動到檔案開頭;

ng:移動到指定行n,如4g,第4行;

w/w:單詞為單位移動

0:游標移動到行首;

l:游標移到螢幕最後一行行首;

^:游標移到行首有內容的位置;

$:游標移到行尾;

m:移到中間行;

[root@localhost home]# vim hello.txt +10

顯示行號:

[zyj@localhost ~]$   1

hello world 2

:set number

修改配置檔案,設定行號,在使用者的家目錄下修改,~代表使用者家目錄。

[zyj@localhost ~]$ vim ~/.vimrc  //

沒有的時候建立這個檔案 一定要加點。~代表使用者家目錄。

set number

刪除命令

x:刪除游標後乙個字元,相當與del

x:刪除游標前乙個字元,相當於backspace

dd:刪除游標所在的行,

ndd:刪除指定的行數

d:刪除游標後本行所有內容,包含游標所在字元

d0:刪除游標前本行所有內容,不包含游標所在字元

dw:刪除游標開始位置的字,包含游標所在字元

撤銷命令:

u:一步一步撤銷

ctr+r:反撤銷

文字移動:

按v進入檢視模式後,按上下鍵選中目標行後,通過<< >>鍵對文字進行左右移動

修改tab鍵設定:

[zyj@localhost home]$ vi ~/.vimrc
set ts=4

複製貼上

yy:複製當前行;

nyy:複製從游標行開始的n行;

yw:複製乙個單詞

進入末行模式複製:

:30,40y 複製30到40行;

:.,$-3y  複製游標所在行到倒數第三行,其中點代表游標所在行,$代表最後一行,$-3表示倒數第三行。

:1,.-3y 第一行到游標所在的前三行;

:1,.+3y 第一行到游標所在的後三行;

將上述y替換為d,則為刪除選用的行;

p:貼上

迴圈查詢,因此使用/關鍵字即可。

舉例:/after  查詢after

n:下乙個

n:上乙個

:%s/abc/123/g 游標所在行的abc替換為123

替換

r:替換當前字元

r:替換當前行游標後的字元

查詢替換:末行模式

:%s/after/before/gi  %表示整個檔案,s表示查詢替換,/為隔開符 g表述全域性 i表示忽略大小寫。

25

if [ -x /usr/bin/id ]; then

26if [ -z "

$euid

" ]; then

27# ksh workaround

28 euid=`/usr/bin/id -u`

29 uid=`/usr/bin/id -ru` 30

fi31 user="

`/usr/bin/id -un`

"32 logname=$user

33 mail="

/var/spool/mail/$user"34

fi35

36# path manipulation 37

if [ "

$euid

" = "

0" ]; then

38 pathmunge /sbin

39 pathmunge /usr/sbin

40 pathmunge /usr/local/sbin 41

else

42 pathmunge /usr/local/sbin before

43 pathmunge /usr/sbin before

44 pathmunge /sbin before

:%s/before/after/gi //

整個檔案中的before替換為after並忽略大小寫

:1,10s/abc/123/g 第一行到第十行替換。

36

# path manipulation 37

if [ "

$euid

" = "

0" ]; then

38 pathmunge /sbin

39 pathmunge /usr/sbin

40 pathmunge /usr/local/sbin 41

else

42 pathmunge /usr/local/sbin after

43 pathmunge /usr/sbin after

44 pathmunge /sbin after

:36,44s/after/before/g //

36行到44行中的after替換為before

末行模式使用!執行命令。

36

# path manipulation 37

if [ "

$euid

" = "

0" ]; then

38 pathmunge /sbin

39 pathmunge /usr/sbin

40 pathmunge /usr/local/sbin 41

else

42 pathmunge /usr/local/sbin before

43 pathmunge /usr/sbin before

44 pathmunge /sbin before 45

path=/etc/

p //不確定是否存在此檔案時,可以在末行模式下使用!加命令檢視是否存在此檔案。

:!ls /etc/p

//末行模式下使用!後加命令,實現不退出vi的情況下進行操作。

[no write since last

change]

/bin/bash: ls/etc/p: no such file

or directory

shell returned

127press enter or type command to continue

小技巧:

[zyj@localhost ~]$ type ls

ls is aliased to `ls --color=auto'

[zyj@localhost ~]$ \ls -r /home //

在指令前面加上\可以忽略alias的預設選項

zyj x hello.txt

[zyj@localhost ~]$ ls /home

hello.txt x zyj

[zyj@localhost ~]$ date -s "

20180417 21:19:19"//

通過一條命令修改系統時間

date: cannot set date

: operation not permitted

tue apr

1721:19:19 pdt 2018

vi命令使用

o 游標所在下一行 i 游標前面 a 游標後面 i 游標所在行行首,轉換為輸入模式 a 游標所在行行尾,轉化為輸入模式 o 在當前游標所在行上方,新建一行並轉換為輸入模式 移動游標 命令模式下 h 左l 右 j 下k 上 g 行尾 2g 第2行 x 刪除乙個字元 5x 刪除5個 d 刪除整行 dd ...

使用 vi 命令

vi命令是unix作業系統和類unix作業系統中最通用的全螢幕純文字編輯器。linux中的vi編輯器叫vim,它是vi的增強版 vi improved 與vi編輯器完全相容,而且實現了很多增強功能。vi編輯器支援編輯模式和命令模式,編輯模式下可以完成文字的編輯功能,命令模式下可以完成對檔案的操作命令...

VI命令使用大全

從shell中啟動視覺化編輯器 vi filename 指示shell啟動vi編輯器,並將引數filename傳給它。如果當前目前中存在該檔案,則vi編輯器將它解釋為要開啟的檔案 如果沒有該檔案,則vi編譯器建立新檔案 vi file1 file2 file3 shell傳遞3個引數給vi,vi將它...