㈠ linux下vim 查找命令
linux下vim 查找命令:
/text --查找text, 按n查找下一個, N查找上一個
?text --查找text(反向查找), 按n查找下一個, N查找上一個
*/# --查找游標當前的單詞,相當於/text
:set ignorecase --查找忽略大小寫
:set noignorecase --查找不忽略大小寫
:nohlsearch --關閉當前的高亮顯示,當再次查找時恢復高亮
:set incsearch --逐步搜索模式,對當前鍵入的字元進行查找,不必等輸入完成
:set wrapscan --重新搜索,當搜索到文件頭或尾時,返回重新搜索
(1)linux中vim基本命令大全擴展閱讀:
1、文件窗口:
:open file --在當前窗口打開新文件
:split file --在新窗口打開文件
:new file --用新窗口打開文件,同 :split file
:bn --切換到下一個文件
:bp --切換到上一個文件
:args --查看當前打開的文件列表(當前正在編輯的文件會用[]括起來)
:e ftp://192.168.10.76/abc.txt
:e qadrive est.txt --打開遠程文件
:split --打開一個新窗口,游標停在頂層的窗口上
:new --打開一個新窗口,游標停在頂層的窗口上
:vsplit --橫向打開窗口。
Ctrl+ww --移動到下一個窗口
Ctrl+wj --移動到下方的窗口
Ctrl+wk --移動到上方的窗口
2、其他命令:
Esc/Ctrl+[ -- 鍵入命令
:!command --執行shell命令
:suspend/Ctrl+Z --掛起vim,回到shell,fg 返回vim
:!perl -c script.pl --檢查perl腳本語法,不用退出vim
:!perl script.pl --執行perl腳本, 不用退出vim
:help --顯示幫助文檔
:help i --顯示i的幫助文檔(:特殊鍵用<>, -t:啟動參數用-)
3、編輯命令:
插入:
i --在當前位置插入
A --在當前行尾插入
I --在當前行首插入
o --在當前行後插入一行
O --在當前行前插入一行
拷貝粘貼剪切:
yy --拷貝當前行
2yy --拷貝當前行開始的2行
p --在當前游標後粘貼
P --在當前行前粘貼
:1,10 co 20 --將1-10行插入到第20行之後。
:1,$ co $ --將整個文件復制一份並添加到文件尾部
v --進入選擇模式,相當於在Windows下按住 Shift選擇
V --進入選擇模式,整行選擇
ddp --交換當前行和其下一行
2dd --剪切當前行之後的2行
:1,10d --將1-10行剪切
:1, 10 m 20 --將第1-10行移動到第20行之後
替換:
ra --將當前游標所在字元替換為a
s/old/new/ --用old替換new,替換當前行的第一個匹配
s/old/new/g --用old替換new,替換當前行的所有匹配
%s/old/new/ --用old替換new,替換所有行的第一個匹配
%s/old/new/g --用old替換new,替換所有匹配
:10,20 s/^/text/g --在第10行到第20行每行前面加上text(:3,5 s/^/#/g --注釋3-5行, :3,5 s/^#//g
--解除3-5行的注釋, :1,$ s/^/#/g --注釋整個文檔, :%s/^/#/g --注釋整個文檔)
ddp --交換游標所在行和下一行
移動:
h --左移一個字元(5h --左移5個字元)
l --右移一個字元(5l --右移5個字元)
k --上移一個字元(5k --上移5個字元)
j --下移一個字元(5j --下移5個字元)
w --向後移動一個單詞(5w --向後移動5個單詞)
b --向前移動一個單詞(5b --向前移動5個單詞)
e --同 w ,游標停在單詞尾部
ge --同 e ,游標停在單詞尾部
^ --移動到本行第一個非空白字元
0 --移動到本行第0個字元
--同0
$ --移動到行尾(3$ --移動到下面3行的行尾)
gg --移動到文件頭(10gg --移動到第10行首)
[[ --同 gg
G --移動到文件尾(10G --移動到第10行尾)
]] --同 G
fx --移動到本行游標後第一個為x的字元(3fx --移動到本行游標後第3個為x的字元)
Fx --同 fx ,反向查找
:20 --跳到20行行首
Ctrl+e --向下滾動一行
Ctrl+y --向上滾動一行
Ctrl+d --向下滾動半屏
Ctrl+u --向上滾動半屏
Ctrl+f --向下滾動一屏
Ctrl+b --向上滾動一屏
撤銷:
u --撤銷
U --撤銷對整行的操作
Ctrl+r --撤銷剛才的撤銷
刪除:
x --刪除當前字元(3x --刪除當前游標開始向後三個字元)
X --刪除當前字元的前一個字元, 同 dh
dl --刪除當前字元, 同 x
dh --刪除前一個字元
dd --刪除當前行
dj --刪除上一行
dk --刪除下一行
10d --刪除當前行開始的10行。
D --刪除當前字元至行尾, 同 d$
kdgg --刪除當前行之前所有行(不包括當前行)
:1,10d --刪除1-10行
:11,$d --刪除11行及以後所有的行
:1,$d --刪除所有行
J--刪除兩行之間的空行, 合並兩行
退出
:wq --保存並退出
ZZ --保存並退出
:q! --強制退出並忽略所有更改
:e! --放棄所有修改,並打開原來文件
:close --關閉窗口,最後一個窗口不能使用此命令,可以防止意外退出vim
:q --如果是最後一個被關閉的窗口,那麼將退出vim
㈡ linux命令vim是什麼
一款功能強大的程序員編輯器,不過入門要長點的時間
㈢ linux下vi編輯器命令大全
高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的:
:qx 開始記錄宏,並將結果存入寄存器x
q 退出記錄模式
@x 播放記錄在x寄存器中的宏命令
稍微解釋一下,當在normal模式下輸入:qx後,你對文本的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模
式,然後輸入@x對剛才記錄下來的命令進行重復,此命令後可跟數字,表示要重復多少次,比如@x20,可以重復20次。這個在文本的批處理中是非常有用的。
同時編輯多個文件
在vim眾多的插件中,有一個叫minibuffer的插件,就是下面所說的標簽頁功能了,可以支持同時編輯多個文件。
標簽命令
:tabe fn 在一個新的標簽頁中編輯文件fn
gt 切換到下一個標簽頁
gT 切換到上一個標簽頁
:tabr 切換到第一個標簽頁
:tabl 切換到最後一個標簽頁
:tabm [N] 把當前tab移動到第N個tab之後
對,正如你所想像的那樣,跟eclipse, ue等的標簽頁是一個意思!
窗口命令
ctrl+w s 水平分割窗口
ctrl+w w 切換窗口
ctrl+w q 退出當前窗口(由於同時有多個文件,此命令不會影響其他窗口)
ctrl+w v 垂直分割窗口
其他
vim在保存之前不會對文件做實際的修改,只是載入到緩沖區中,對文件的編輯其實是對緩沖區的編輯,直到:w時才會存入物理文件。
:e file 把file載入到新的緩沖區中
:bn 跳轉到下一個緩沖區
:bd 刪除緩沖區(關閉文件)
:sp fn 分割窗口,並將fn載入到新的窗口中
退出編輯器
:w 將緩沖區寫入文件,即保存修改
:wq 保存修改並退出
:x 保存修改並退出
:q 退出,如果對緩沖區進行過修改,則會提示
:q! 強制退出,放棄修改
查找替換
/pattern 向後搜索字元串pattern
?pattern 向前搜索字元串pattern
n 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個文件,將所有的old替換為new
:%s/old/new/gc 搜索整個文件,將所有的old替換為new,每次都要你確認是否替換
復制粘貼
dd 刪除游標所在行
dw 刪除一個字(word)
x 刪除當前字元
X 刪除前一個字元
D 刪除到行末
yy 復制一行,此命令前可跟數字,標識復制多行,如6yy,表示從當前行開始復制6行
yw 復制一個字
y$ 復制到行末
p 粘貼粘貼板的內容到當前行的下面
P 粘貼粘貼板的內容到當前行的上面
]p 有縮進的粘貼,vim會自動調節代碼的縮進
"a 將內容放入/存入a寄存器,可以支持多粘貼板
附:比如常用的一個寄存器就是系統寄存器,名稱為+,所以從系統粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,二十一個寄存器。
移動游標
在vim中移動游標跟其他的編輯器中有很大的區別,不過一旦學會了,就會飛速的在文本中移動了。
h,j,k,l 上,下,左,右
ctrl-f 上翻一頁
ctrl-b 下翻一頁
% 跳到與當前括弧匹配的括弧處,如當前在{,則跳轉到與之匹配的}處
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認為是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮進,就是跳到第0個字元
^ 跳至行首的第一個字元
$ 跳至行尾
gg 跳至文件的第一行
gd 跳至當前游標所在的變數的聲明處
[N]G 跳到第N行,如0G,就等價於gg,100G就是第100行
fx 在當前行中找x字元,找到了就跳轉至
; 重復上一個f命令,而不用重復的輸入fx
tx 與fx類似,但是只是跳轉到x的前一個字元處
Fx 跟fx的方向相反
),( 跳轉到上/下一個語句
* 查找游標所在處的單詞,向下查找
# 查找游標所在處的單詞,向上查找
`. 跳轉至上次編輯位置
在屏幕上移動
H 移動游標到當前屏幕上最上邊的一行
M 移動游標到當前屏幕上中間的一行
L 移動游標到當前屏幕上最下邊的一行
書簽
ma 把當前位置存成標簽a
`a 跳轉到標簽a處
編輯
r 替換一個字元
J 將下一行和當前行連接為一行
cc 刪除當前行並進入編輯模式
cw 刪除當前字,並進入編輯模式
c$ 擦除從當前位置至行末的內容,並進入編輯模式
s 刪除當前字元並進入編輯模式
S 刪除游標所在行並進入編輯模式
xp 交換當前字元和下一個字元
u 撤銷
ctrl+r 重做
. 重復上一個編輯命令
~ 切換大小寫,當前字元
g~iw 切換當前字的大小寫
gUiw 將當前字變成大寫
guiw 將當前字變成小寫
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)
== 自動縮進當前行
插入模式
i 從當前游標處進入插入模式
I 進入插入模式,並置游標於行首
a 追加模式,置游標於當前游標之後
A 追加模式,置游標於行末
o 在當前行之下新加一行,並進入插入模式
O 在當前行之上新加一行,並進入插入模式
Esc 退出插入模式
可視模式
標記文本
v 進入可視模式,單字元模式
V 進入可視模式,行模式
ctrl+v 進入可視模式,列模式,類似於UE的列模式
o 跳轉游標到選中塊的另一個端點
U 將選中塊中的內容轉成大寫
O 跳轉游標到塊的另一個端點
aw 選中一個字
ab 選中括弧中的所有內容,包括括弧本身
aB 選中{}括弧中的所有內容
ib 選中括弧中的內容,不含括弧
iB 選中{}中的內容,不含{}
對標記進行動作
> 塊右移
< 塊左移
y 復制塊
d 刪除塊
~ 切換塊中內容的大小寫
㈣ Vi命令的命令大全
本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多,論壇里好像這方面的總結不多,以下稍做總結,以資共享!渴望更正和補充!
進入vi的命令
vi filename :打開或新建文件,並將游標置於第一行首
vi +n filename :打開文件,並將游標置於第n行首
vi + filename :打開文件,並將游標置於最後一行首
vi +/pattern filename:打開文件,並將游標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :打開多個文件,依次進行編輯
移動游標類命令
h :游標左移一個字元
l :游標右移一個字元
space:游標右移一個字元
Backspace:游標左移一個字元
k或Ctrl+p:游標上移一行
j或Ctrl+n :游標下移一行
Enter :游標下移一行
w或W :游標右移一個字至字首
b或B :游標左移一個字至字首
e或E :游標右移一個字至字尾
) :游標移至句尾
( :游標移至句首
}:游標移至段落最後一個字母
{:游標移至段落第一個字母
nG:游標移至第n行首
n+:游標下移n行
n-:游標上移n行
n$:游標移至第n行尾
H :游標移至屏幕頂行
M :游標移至屏幕中間行
L :游標移至屏幕最後行
0:(注意是數字零)游標移至當前行首
$:游標移至當前行尾
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令
i :在游標前
I :在當前行首
a:游標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字元
R:替換當前字元及其後的字元,直至按ESC鍵
s:從當前游標位置處開始,以輸入的文本替代指定數目的字元
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
ndw或ndW:刪除游標處開始及其後的n-1個字
d0:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從游標開始處向文件尾搜索pattern
?pattern:從游標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶「」的特殊字元
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
最後行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
?p:取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
tags 用法
在函數中移動游標
[{ 轉到上一個位於第一列的{
}] 轉到下一個位於第一列的{
{ 轉到上一個空行
} 轉到下一個空行 ([ and ] 也分別是兩個指令)
ctrl+t 跳回
gd 轉到當前游標所指的局部變數的定義
* 轉到當前游標所指的單詞下一次出現的地方
# 轉到當前游標所指的單詞上一次出現的地方
Vim 的創造者是一名計算機程序員,因此這就不奇怪 Vim 中有許多幫助編寫程序的功能:
跳轉到標識符被定義和使用的地方;在另一個窗口中預覽有關的聲明等等。
㈤ linux VI命令
回到開始的地方 gg
打開並定位第10行 vi +10 filename.txt
往下翻頁 ctrl+d
簡易教學 vimtutor
㈥ linux中vi常用的命令
[語法]:vi [-wn] [-R] 文件…
[說明]: vi 是一個基於行編輯器 ex 上的全屏幕編輯器,可以在vi 中使用 ex,ed的全部命令,vi選項中 -wn 指將編輯窗口大小置為n行,-R 為將編輯的文件置為只讀模式, vi 工作模式分為命令模式和輸入模式,一般情況下在命令模式下,可敲入vi命令,進入輸入模式下時可以編輯要編輯的文本,命令 a A i I o O c C s S R 可進入輸入模式,在輸入模式下按 ESC 鍵可推出輸入模式,回到命令模式,在命令模式中敲入: 命令,則可進入ex方式,在屏幕底部出現提示符 : ,此時可使用任意ex命令,屏幕底行也用來作/ ? ! 命令的提示行,大多數命令可以在其前面加數字,表示命令執行的重復次數,下面簡單介紹一下vi 的命令集,^ 表示(CTRL)鍵
^B 退回前一頁,前面加數字表示重復次數,每次換頁時
保留上一頁的兩行
^D 在命令模式下,表示下滾屏幕的一半,在輸入模式下,表示回退至
左邊的自動縮進處
^E 顯示屏幕底線之下的一行
^F 前進一頁,前面加數字表示重復次數,每次換頁時
保留上一頁的兩行
^G 顯示當前文件名,當前行號和文件總行數,並用百分號當前行在
整個文件中的位置
^H(退格) 在命令模式下,游標左移一格;在輸入模式下,刪去前面的字元
^I(TAB) 在輸入模式下,產生一串空格
^J(LF) 游標下移一行
^L 刷新屏幕,即將屏幕重新顯示
^M(回車) 在命令模式下,游標移動至下行開頭
在輸入模式下,開辟一新行
^N 游標下移一行
^P 游標上移一行
^Q 在輸入模式下,將其後的非列印字元作為正文插入
^R 刷新屏幕
^U 屏幕上滾一半,前面加數字時表示上滾的行數,此數字對
以後的^D ^U 命令有效
^V 在輸入模式下,將其後的非列印字元作為正文插入
^W 在輸入模式下,使游標回退一個字
^Y 顯示屏幕底線之上的一行
^Z 暫停編輯,退回上層Shell
^[(ESC) 退出輸入模式,回到命令模式
! 暫時退出編輯,執行Shell命令
(雙引號) 用於標志有名緩沖區,編號緩沖區1-9用於保存被刪去的正文,字
母名緩沖區a-z供用戶存放自定義的正文
$ 將游標移動到當前行尾,前加數字則表示前移行數,如2$表示移動
到下一行行尾
% 將游標移動到配對的小括弧()或大括弧{}上去
( 退回句子開頭
) 前移到句子開頭
- 退到上一行第一個非空格字元
. 重復上一次改變緩沖區內容的命令
/ 模式向前搜索模式,將游標移動到模式出現處,模式是一個正規
表達式,(參看 grep)
: 在屏幕底部提示:,其後可使用ex命令
? 功能同 / ,但方向是向前查找
[[ 游標回退至前一節分界處
\ 轉意符
]] 游標前移至節分界處
^(不是CTRL) 游標移至當前行第一個非空字元上
『 連續兩個」表示將游標移至其移動前的位置,』後跟字母表示游標字
母標記的行首(參看 m 命令)
A 在行尾插入正文,進入輸入模式
B 游標回退一個字
C 替換游標後的內容
D 刪除游標後的內容
E 游標前移到字尾
F 字元 在當前行向左查找指定字元
G 游標移動到其前面數字指定的行,若未指定則移動到最後一行
H 游標移動到屏幕頂行,若前面有數字,則移動到屏幕上該數字
指定的行
I 在行開頭插入正文
J 連接兩行,若前面有數字則連接數字指定的行
L 游標移動到屏幕底行,若前面有數字,則移動到屏幕底線往上數該
數字指定的行
M 游標移動到屏幕中線
N 使用模式查找/或?時,重復找下一個匹配的模式,但方向與上次相
反,其功能同 n ,但方向相反
O 在當前行上開辟一新行
P 將上次被刪除的正文插入游標前面,可在其前面加緩沖區編號,編
號1-9用於保存被刪去的正文,字母名緩沖區a-z供用戶存放自定
義的正文
Q 從vi 推出進入ex命令狀態
R 替換字元串
S 替換整行
T 字元 向左查找字元
U 將當前行恢復至第一次修改前的狀態
W 游標移至下一個字首
X 刪除游標前的字元
Y 將當前行存入無名緩沖區,前面加數字表示存入的行數,也可用有
名緩沖區來保存,以後可用命令p或P將其取出
ZZ 存檔退出vi
a 游標後插入正文
b 游標回退至上一個字首
cw 替換當前字
c) 替換當前句子
dw 刪除一個字
dd 刪除一行
e 游標移到下一個字末
f 字元 在當前行向前查找字元
h 游標左移一格
i 在游標前插入正文
j 游標下移一行
k 游標上移一行
l 游標右移一格
m 字母 用字母標記當前行,以後可用 『字母使游標移動到當前行,
(參看』命令)
n 重復上次 / 或 ? 命令
o 在當前行下開辟一新行
p 將用戶緩沖區內容放到游標位置(參看P命令)
r 替換當前字元
s 用一串字元替換當前字元
t 字元 游標移動至字元前
u 取消上次操作
w 游標移至下一字首
x 刪除當前字元
yw 將當前字存入無名緩沖區,前面可加x,表示存入名字為x的有名
緩沖區(x為a-z),也可加數字表示存入的字數,以後可用P或p命
令取出
yy 將當前行存入無名緩沖區,用法參看yw
{ 游標移動至前一段開頭
| 游標移至行首,若前面加數字,則移到數字指定行的行首
} 游標移至下一段開頭
在:提示符下,常用命令如下:
:w 當前文件存檔
:w! 強制存檔
:w 文件 將內容寫入指定文件
:w! 文件 強制寫入指定文件
:x,y w 文件 將 x至 y 行寫入指定文件中
:r 文件 將文件讀到游標位置
:r ! 命令將系統命令的輸出讀到游標位置
:q 退出編輯
:q! 強制退出
:x 與命令ZZ相同
:e 文件名 編輯另一文件
:e ! 重新編輯文件,放棄任何改變
:sh 執行sh,結束後回到編輯
:! 命令 執行命令後回到編輯
:n 編輯下一文件
:n 文件表 重新定義待編輯文件表
:set 設置 vi 的選項,例如 set nu 表示每行前顯示行號,在選項前
加no則表示清除該選項,例如 set nonu 表示每行前不顯示行
號,下面是一些常用的選項:
ai 自動縮進
aw 編輯下一文件前自動存檔
ic 查找字元串時不區分大小寫
nu 每行前顯示行號
sm 輸入)及}時顯示與之配對的( 或 {
slow 插入時延遲屏幕刷新
ws 使查找能繞過文件尾從頭進行
wa 寫文件之前不作對文件的檢查
㈦ Linux vi 操作命令
進入vi的命令
vi filename :打開或新建文件,並將游標置於第一行首
vi +n filename :打開文件,並將游標置於第n行首
vi + filename :打開文件,並將游標置於最後一行首
vi +/pattern filename:打開文件,並將游標置於第一個和pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename :打開多個文件,依次進行編輯
移動游標類命令
h :游標左移一個字元
l :游標右移一個字元
space:游標右移一個字元
Backspace:游標左移一個字元
k或Ctrl+p:游標上移一行
j或Ctrl+n :游標下移一行
Enter :游標下移一行
w或W :游標右移一個字至字首
b或B :游標左移一個字至字首
e或E :游標右移一個字至字尾
) :游標移至句尾
( :游標移至句首
}:游標移至段落開頭
{:游標移至段落結尾
nG:游標移至第n行首
n+:游標下移n行
n-:游標上移n行
n$:游標移至第n行尾
H :游標移至屏幕頂行
M :游標移至屏幕中間行
L :游標移至屏幕最後行
0:(注意是數字零)游標移至當前行首
$:游標移至當前行尾
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令
i :在游標前
I :在當前行首
a:游標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字元
R:替換當前字元及其後的字元,直至按ESC鍵
s:從當前游標位置處開始,以輸入的文本替代指定數目的字元
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
ndw或ndW:刪除游標處開始及其後的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從游標開始處向文件尾搜索pattern
?pattern:從游標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶「」的特別字元
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
最後行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容並將其放到游標位置處。這里?能是個字母,也能是個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
進入vi
vi test
離開vi
:q! 離開vi,並放棄剛在緩沖區內編輯的內容。
:wq 將緩沖區內的資料寫入磁碟中,並離開vi。
:ZZ 同wq
同wq
:w 將緩沖區內的資料寫入磁碟中,但並不離開vi。
:q 離開vi,若文件被修改過,則會被需求確認是否放棄修改的內容,此指令可和: w 配合使用。
Vi 的操作模式
Vi 提供兩種操作模式:
輸入模式(insert mode)
指令模式(command mode)
當使用者進入vi後,既處於指令模式下,此刻鍵入所有字元皆被視為指令。
輸入模式:a(append) 游標之後加入資料。
A 該行之末加入資料
i (insert) 游標之前加入資料
I 該行之首加入資料
o (open) 新增一行和該行之下供輸入資料
O 新增一行和該行之上供輸入資料
指令模式:B 移至該行第一個字元,若游標在該行第一字元則游標移至上一行第一字元。
b 由游標所在位置之前一個字串的第一個字元
cc 刪除整行,修改整行的內容。
D 以行為單位,刪除游標在內後面的所有字元。
db 刪除該行游標前字元
dd 刪除該行
de 刪除自游標開始後面的字元
d加字元刪除游標所在位置至字元之間的單
E移至該行最後字元,若游標在該行最後字元則游標移至下一行最後字元
e由游標所在位置至該字串的最後一個字元
G 移至該檔案的最後一行
h 向前移一個字元
j 向下移一個字元
k 向上移一個字元
0 移至該行之首
M 移至視窗的中間那行
L 移至視窗的最後一行
l 向後移一個字元
0 由游標所在位置該行的第一個字元
nG 移至該檔案的第n行
n+ 自游標所在位置向後移n行至該行的第一字元
n- 自游標所在位置向前移n行至該行的第一字元
R 進入取代狀態,直到《ESC》為止
s 刪除游標所在字元,並進入取代模式直到《ESC》
S 刪除游標所在之該行資料,並進入輸入模式直到《ESC》
w 由游標所在位置之下一個字串的第一個字元
x 刪除游標所在該字元。
X 刪除游標所在之前一字元。
r 用接於此指令之後的字元取代(replace)游標所在字元
yy yank整行,使游標所在該行復制到記憶體緩沖區
顯示該行之行號、檔案名稱、檔案中最末之行號、游標所在行號占
總行號之百分比
$ 由游標所在位置至該行的最後一個字元。
) 由游標所在位置至下一個句子的第一個字元。
( 由游標所在位置至該句子的第一個字元。
{ 由游標所在位置至該段落的最後一個字元。
} 由游標所在位置至該段落的第一個字元
yank和delete可將指定的資料復制到記憶體緩沖區,而藉有put指令可將緩沖區內的資料復制到熒幕上
例如:搬移一行 :在該行執行dd
游標移至目的地
執行p
復制一行 :在該行執行yy
游標移至目的地
執行p
視窗移動:
視窗往下卷一頁
視窗往上卷一頁
視窗往下卷半頁
視窗往上卷半頁
視窗往下卷一行
視窗往上卷一行
刪除、復制及修改指令介紹:
d(delete)、c(change)和y(yank)這一類的指令在vi 中的指令格式為:
operation+scope=command
(運運算元)(范圍)
運運算元:
d 刪除指令。刪除資料,但會將刪除資料復制到記憶體緩沖區。
y 將資料(字組、行列、句子或段落)復制到緩沖區。
p 放置(put)指令,和d和y配合使用。可將最後delete或yank的資料放置於游標所在位置之行列下。
c 修改(change)指令,類似delete於insert的組合。刪除一個字組、句子等資料,並插入新鍵入的
㈧ vi的常用命令
vi的基本操作
a) 進入vi
在系統提示符號輸入vi及文件名稱後,就進入vi全屏幕編輯畫面:
$ vi myfile
不過有一點要特別注意,就是您進入vi之後,是處於「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動游標,結果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi後,先不要亂動,轉換到「插入模式(Insert mode)」再說吧!
b) 切換至插入模式(Insert mode)編輯文件
在「命令行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。
c) Insert 的切換
您目前處於「插入模式(Insert mode)」,您就只能一直輸入文字,如果您發現輸錯了字!想用游標鍵往回移動,將該字刪除,就要先按一下「ESC」鍵轉到「命令行模式(command mode)」再刪除文字。
d) 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒號鍵進入「Last line mode」,例如:
: w filename (輸入 「w filename」將文章以指定的文件名filename保存)
: wq (輸入「wq」,存檔並退出vi)
: q! (輸入q!, 不存檔強制退出vi)
3、命令行模式(command mode)功能鍵
1). 插入模式
按「i」切換進入插入模式「insert mode」,按「i」進入插入模式後是從游標當前位置開始輸入文件;
按「a」進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字;
按「o」進入插入模式後,是插入新的一行,從行首開始輸入文字。
2). 從插入模式切換為命令行模式
按「ESC」鍵。
3). 移動游標
vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制游標左、下、上、右移一格。
按「ctrl」+「b」:屏幕往「後」移動一頁。
按「ctrl」+「f」:屏幕往「前」移動一頁。
按「ctrl」+「u」:屏幕往「後」移動半頁。
按「ctrl」+「d」:屏幕往「前」移動半頁。
按數字「0」:移到文章的開頭。
按「G」:移動到文章的最後。
按「$」:移動到游標所在行的「行尾」。
按「^」:移動到游標所在行的「行首」
按「w」:游標跳到下個字的開頭
按「e」:游標跳到下個字的字尾
按「b」:游標回到上個字的開頭
按「#l」:游標移到該行的第#個位置,如:5l,56l。
4). 刪除文字
「x」:每按一次,刪除游標所在位置的「後面」一個字元。
「#x」:例如,「6x」表示刪除游標所在位置的「後面」6個字元。
「X」:大寫的X,每按一次,刪除游標所在位置的「前面」一個字元。
「#X」:例如,「20X」表示刪除游標所在位置的「前面」20個字元。
「dd」:刪除游標所在行。
「#dd」:從游標所在行開始刪除#行
5). 復制
「yw」:將游標所在之處到字尾的字元復制到緩沖區中。
「#yw」:復制#個字到緩沖區
「yy」:復制游標所在行到緩沖區。
「#yy」:例如,「6yy」表示拷貝從游標所在的該行「往下數」6行文字。
「p」:將緩沖區內的字元貼到游標所在位置。注意:所有與「y」有關的復制命令都必須與「p」配合才能完成復制與粘貼功能。
6). 替換
「r」:替換游標所在處的字元。
「R」:替換游標所到之處的字元,直到按下「ESC」鍵為止。
7). 回復上一次操作
「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次「u」可以執行多次回復。
8). 更改
「cw」:更改游標所在處的字到字尾處
「c#w」:例如,「c3w」表示更改3個字
9). 跳至指定的行
「ctrl」+「g」列出遊標所在行的行號。
「#G」:例如,「15G」,表示移動游標至文章的第15行行首。
4、Last line mode下命令簡介
在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經處於「command mode」下後,再按「:」冒號即可進入「last line mode」。
A) 列出行號
「set nu」:輸入「set nu」後,會在文件中的每一行前面列出行號。
B) 跳到文件中的某一行
「#」:「#」號表示一個數字,在冒號後輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。
C) 查找字元
「/關鍵字」:先按「/」鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往後尋找到您要的關鍵字為止。
「?關鍵字」:先按「?」鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關鍵字為止。
D) 保存文件
「w」:在冒號輸入字母「w」就可以將文件保存起來。
E) 離開vi
「q」:按「q」就是退出,如果無法離開vi,可以在「q」後跟一個「!」強制離開vi。
「qw」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。
5、vi命令列表
1、下表列出命令模式下的一些鍵的功能:
h
左移游標一個字元
l
右移游標一個字元
k
游標上移一行
j
游標下移一行
^
游標移動至行首
0
數字「0」,游標移至文章的開頭
G
游標移至文章的最後
$
游標移動至行尾
Ctrl+f
向前翻屏
Ctrl+b
向後翻屏
Ctrl+d
向前翻半屏
Ctrl+u
向後翻半屏
i
在游標位置前插入字元
a
在游標所在位置的後一個字元開始增加
o
插入新的一行,從行首開始輸入
ESC
從輸入狀態退至命令狀態
x
刪除游標後面的字元
#x
刪除游標後的#個字元
X
(大寫X),刪除游標前面的字元
#X
刪除游標前面的#個字元
dd
刪除游標所在的行
#dd
刪除從游標所在行數的#行
yw
復制游標所在位置的一個字
#yw
復制游標所在位置的#個字
yy
復制游標所在位置的一行
#yy
復制從游標所在行數的#行
p
粘貼
u
取消操作
cw
更改游標所在位置的一個字
#cw
更改游標所在位置的#個字
2、下表列出行命令模式下的一些指令
w filename
儲存正在編輯的文件為filename
wq filename
儲存正在編輯的文件為filename,並退出vi
q!
放棄所有修改,退出vi
set nu
顯示行號
/或?
查找,在/後輸入要查找的內容
n
與/或?一起使用,如果查找的內容不是想要找的關鍵字,按n或向後(與/聯用)或向前(與?聯用)繼續查找,直到找到為止。
對於第一次用vi,有幾點注意要提醒一下:
1、用vi打開文件後,是處於「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。切換方法:在「命令行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。
2、編輯好後,需從插入模式切換為命令行模式才能對文件進行保存,切換方法:按「ESC」鍵。
3、保存並退出文件:在命令模式下輸入:wq即可!(別忘了wq前面的:)
㈨ linux vim操作
vi很好用,習慣了比Windows的編輯器好用,復制粘貼相關:
1.將游標移動到將要復制的行處,按yy進行復制當前行(按nyy復制n行),再移動到粘貼位置,按p進行粘貼。
2.將游標移到復制的首位置,按下v,用hjkl移動,按y復制,按p粘貼。
3.游標移到起始行,輸入ma;游標移到結束行,輸入mb;游標移到粘貼行,輸入mc;然後 :'a,'b co 'c,把 co 改成 m 就成剪切了。
4.游標移動到要復制的行,輸入yny(n表示要復制該行以下n行);游標移動到粘貼行,按p粘貼。
5.直接輸入:n1,n2 co n3。(n1為起始行,n2為結束行,n3為粘貼行)
6.不同文件之間的復制:用:sp [filename]打開另一文件,(用^ww在文件之間切換),然後按上述方法復制
有關的命令如下:
yy 將當前行復制到緩沖區
yw 將當前單詞復制到緩沖區
y1 將游標處的一個字元復制到緩沖區
p 將緩沖區的信息粘貼到游標的後面
:行號1 ,行號2 行號3 將行號1到行號2的內容復制到行號3所在行的後面。
:行號1 ,行號2 move 行號3 將行號1到行號2的文本內容移動到行號3所在行的後面。
7.寄存器操作
寄存器操作
"?nyy: 將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw: 將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl: 將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
"?p: 取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字
ndd: 將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中
vi多個文件之間復制、粘貼
打開和切換文件 步驟
1、vi 1
2、:e 2 打開文件2
3、用:e#在兩個文件間切換。
復制和粘貼文件 步驟
1、回到1文件,先在開始處做標志mk 然後在末尾用"ay'k (游標自動回到開始處,此時已經把你的內容放到緩沖區了) 其中a表示緩沖區a
2、用:e#切換到文件2,找到你要粘貼的位置,然後用"ap命令粘貼就行
㈩ linux vi命令的使用方法
vi的基本概念
基本上vi可分為三種操作狀態,分別是命令模式(Command mode)、插入模式(Insert mode)和底線命令模式(Last line mode),
各模式的功能區分如下:
1. Comand mode:控制屏幕游標的移動,字元或游標的刪除,移動復制某區段及進入Insert mode下,或者到Last line mode。
2. Insert mode:唯有在Insert mode下,才可做文字數據輸入,按Esc等可回到Comand mode。
3. Last line mode:將儲存文件或離開編輯器,也可設置編輯環境,如尋找字元串、列出行號等。
不過可以把vi簡化成兩個模式,即是將Last line mode也算入Command mode,把vi分成Command 和Insert mode。
vi的基本操作
?進入vi
在系統提示符號輸入vi及文件名稱後,即可進入vi全屏幕編輯畫面:
$ vi testfile
有一點要特別注意,就是您進入vi之後是處於「Command mode」下,您要切換到Insert mode才能輸入文字。
初次用vi的用戶都會想先用上下左右鍵移動游標,結果電腦一直叫,把自己氣個半死,所以進入vi後,先不要亂動,
轉換入Insert後再說。?切換至Insert mode編輯文件在Command mode下按『i』、『a』或『o』三鍵就可進入Insert mode。
這時候您就可以開始輸入文字了。
i: 插入,從目前游標所在之處插入所輸入的文字。
a: 增加,目前游標所在的下一個字開始輸入文字。
o: 插入新的一行,從行首開始輸入文字。
?Insert的切換→Command mode,按Esc鍵
您目前處於Insert mode,您就只能一直打字。假如您發現打錯字了,想用游標鍵往回移動,將該字刪除,
就要按ESC鍵轉換回Command mode,再刪除文字。
?離開vi及存文件
在Command mode下,可按冒號「:」鍵入入Last line mode,例如:
:w filename (輸入「w filename」,將文章存入指定的文件名filename)
:wq (輸入「wq」,因為進入之時已經指定文件名testfile,所以會寫入testfile並離開vi)
:q! (輸入「q!」,強制離開並放棄編輯的文件)
Command mode功能鍵列表
在介紹command mode指令的時後,指令後面加上「常用」字眼的功能鍵,表示比較常用的vi指令,
請讀者您一定要學會、記住。
(1)I、a、o切換進入Insert mode。[超級常用]
(2)移動游標
vi可以直接用鍵盤上的游標鍵來上下左右移動,但正規的vi是用小寫英文字母
h、j、k、l,分別控制游標左、下、上、右移一格。
按Ctrl+B:屏幕往後移動一頁。[常用]
按Ctrl+F:屏幕往前移動一頁。[常用]
按Ctrl+U:屏幕往後移動半頁。
按Ctrl+D:屏幕往前移動半頁。
按 0 (數字零):移動文章的開頭。[常用]
按 G:移動到文章的最後。[常用]
按 w:游標跳到下個word的開頭。[常用]
按 e:游標跳到下個word的字尾。
按 b:游標回到上個word的開頭。
按 $:移到游標所在行的行尾。[常用]
按 ^:移到該行第一個非空白的字元。
按 0:移到該行的開頭位置。[常用]
按 #:移到該行的第#個位置,例:51、121。[常用]
(3)刪除文字
x:每按一次刪除游標所在位置的後面一個字元。[超常用]
#x:例如,6x 表刪除游標所在位置的後面6個字元。[常用]
X:大字的X,每按一次刪除游標所在位置的前面一個字元。
#X:例如,20X 表刪除游標所在位置的前面20個字元。
dd:刪除游標所在行。[超常用]
#dd:例如,6dd表刪除從游標所在的該行往下數6行之文字。[常用]
(4)復制
yw:將游標所在處到字尾的字元復制到緩沖區中。
(想在和#x、#X的功能相反)
p:將緩沖區內的字元粘貼到游標所在位置(指令『yw』與『p必須搭配使用)。
yy:復制游標所在行。[超常用]
p:復制單行到您想粘貼之處。(指令『yy』與『p』必須搭配使用)
#yy:如:6yy表示拷貝從游標所在的該行往下數6行之文字。[常用]
p:復制多行到您想粘貼之處。(指令『#yy』與『p』必須搭配使用)
「ayy:將復制行放入buffer a, vi提供buffer功能,可將常用的數據存在buffer
「ap:將放在buffer a的數據粘貼。
「b3yy:將三行數據存入buffer b。
「b3p:將存在buffer b的資料粘貼
(5)取代
r: 取代游標所在處的字元:[常用]
R:取代字元直到按Esc為止。
(6)復原(undo)上一個指令
u:假如您誤操作一個指令,可以馬上按u,回復到上一個操作。[超常用]
.: .可以重復執行上一次的指令。
(7)更改
cw:更改游標所在處的字到字尾$處。
c#w:例如,c3w代表更改3個字。
(8)跳至指定行
Ctrl+G:列出遊標所在行的行號。
#G:例如,15G,表示移動游標至文章的第15行行首。[常用]
Last line mode下指令簡介
讀者您要使用Last line mode之前,請記得先按Esc鍵確定您已經處於Command mode下後,再按冒號「:」或「/」或「?」
三鍵的其中一鍵進入Last line mode。
1.列出行號
set nu: 輸入「set nu」後,會在文章的每一行前面列出行號。
2.跳到文章的某一行
#:井號代表一個數字,在Last line mode提示符號「:」前輸入數字,再按Enter就會跳到該行了,
如:15[Enter]就會跳到文章的第15行。[常用]
3.尋找字元串
/關鍵字:先按/,再輸入您想尋找的字,如果第一次找的關鍵字不是您相盡可能的,可以一直按n會往下尋找到您要的關鍵字為止。
?關鍵字:先按?,再輸入您想尋找的字,如果第一次找的關鍵字不是您想要的,可以按n會往前尋找到您要的關鍵字為止。
4.取代字元串
1,$s/string/replae/g:在last line mode輸入「1,$s/string/replace/g」會將全文的string字元串取代為replace字元串,
其中1,$s就是指搜尋區間為文章從頭至尾的意思,g則是表示全部取代不必確認。
%s/string/replace/c:同樣會將全文的string字元串取代為replace字元串,和上面指令不同的地方是,%s和1,$s是相同的功能,
c則是表示要替代之前必須再次確認是否取代。
1,20s/string/replace/g:將1至20行間的string替代為relpace字元串。
5.存文件
w:在last line mode提示符號「:」前按w即可將文件存起來。[超常用]
#,# w filename:如果您想摘取文章的某一段,存成另一個文件,可用這個指令#代錶行號,例如30,50 w nice,
將您正在編輯文章的第30~50行存成nice這個文件。
6.離開
q:按q就離開,有時如果無法離開vi,可搭配「!:強置離開vi,如「q!」
qw:一般建議離開時,搭配w一起使用,如此離開時還可存文件