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 ~]$ 1hello 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表示忽略大小寫。
25if [ -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 lsls 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將它...