linux vi编辑器 Ctrl s,Linux命令-----vi/vim编辑器
也可建立vi到vim的符號連接(即實際調用的是vim)
# mv /bin/vi /bin/vi.bak
# ln -s /usr/bin/vim /bin/vi
進入vi的命令:
vi ?直接進入編輯并創建新文件
vi filename ?編輯文件(不存在則創建文件),并將光標置于第一行首
vi +n filename ?打開文件,并將光標置于第n行首
vi + filename ??打開文件,并將光標置于最后一行首
vi +/pattern filename ?打開文件,并將光標置于第一個與pattern匹配的串處
vi -r filename ??在上次正用vi編輯時發生系統崩潰,恢復文件
vi file1....filen ??打開多個文件,依次進行編輯
vi -o aaa bbb ??水平窗口打開aaa,bbb兩個文件
vi -O aaa bbb ??垂直窗口打開aaa,bbb兩個文件(Ctrl+W兩次可在多個文件間切換)
多文本編輯的按鍵:
:n ?編輯下一個文件
:N ?編輯上一個文件
:files ?列出目前這個vi的打開的所有文件
多窗口情況下的按鍵功能:
:sp [filename] ?打開一個新窗口,如果有加filename,表示在新窗口打開一個新文件,否則表示兩個窗口為同一個文件內容(同步顯示)
[ctrl]+w+j
[ctrl]+w+↓ ??按鍵的按法是:先按下[ctrl]不放,再按下w后放開所有的按鍵,然后再按下j(或向下箭頭鍵),則光標可移動到下方的窗口
[ctrl]+w+k
[ctrl]+w+↑ ???同上,不過光標移動到上面的窗口
[ctrl]+w+q ???其實就是:q結束離開。例如,想要結束下方的窗口,那么利用[ctrl]+w+↓移動到下方窗口后,按下:q即可離開,也可以按下[ctrl]+w+q
塊選擇的按鍵意義:
v ?字符選擇,將光標經過的地方反白選擇
V ?行選擇,將光標經過的行反白選擇
Ctrl + v ?塊選擇,可以用長方形的方式選擇數據
y ?將反白的地方復制起來
d ?將反白的地方刪除
恢復命令:
u ?恢復最后一個指令之前的結果
. ?繼續最后一個指令的執行結果
ctrl+r ?撤銷恢復
U ?恢復光標該行之所有改變
移動光標命令:
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 ?修改指定數目的行
yy ?p ?復制當前行,并粘貼到下一行
nyy ?n為數字。復制光標所在的向下n行,例如20yy,則是復制20行
y1G ?復制光標所在行到第一行的所有數據
yG ??復制光標所在行到最后一行的所有數據
y0 ???復制光標所在的那個字符到該行行首的所有數據
y$ ???復制光標所在的那個字符到該行行尾的所有數據
shift + i ?在該行之首插入字符
shift + a ??在該行末尾輸入字符
shift + r ?改寫自光標位置及后面的所有內容
shift +o ?在光標之上新增一行輸入字符
刪除命令:
ndw或ndW ?刪除光標處開始及其后的n-1個字
d0 ?刪至行首(為數字0)
d$ ?刪至行尾
shift + d ?剪切至行尾
dd ?刪除一行
ndd ?刪除自光標開始的n行
s ?刪除光標所在之字符,并進入輸入模式直到《ESC》
S ?刪除光標所在之該行資料,并進入輸入模式直到《ESC》
x或X ?刪除一個字符,x刪除光標后的,而X刪除光標前的
nx ?n為數字,連續向后刪除n個字符。如,要連續刪除10個字符,則:“10x”
Ctrl+u ?刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern ?從光標開始處向文件尾搜索pattern
?pattern ?從光標開始處向文件首搜索pattern
n ?在同一方向重復上一次搜索命令
N ?在反方向上重復上一次搜索命令
:s/p1/p2/ ?替換當前行第一個p1為p2
:s/p1/p2/g ?將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g ?將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g ?將文件中所有p1均用p2替換
: 1,$s/old/new/g ?將文件中所有的『old』改成『new』
: 1,$s/old/new/gc ?將文件中所有的『old』改成『new』,并在改前提示用戶確認
: 10,20s/^/ / ?將第10行至第20行資料的最前面插入5個空格
: %s/^m//g ?刪除文件中所有的^M符號
選項設置:
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行之間的內容刪除
:e filename ?打開文件filename進行編輯
:e! dd ??強制關閉當前文件(不保存)打開新文件dd
: e! ?放棄修改重新編輯
:q! ?不保存文件并退出vi
:r fff 在當前位置讀入fff文件
:set nonu 不顯示行號
:set nu 顯示行號
:w ?保存輸入的內容到當前文件
:w eee 另存為eee文件
:wq ?保存并退出
:x ?保存當前文件并退出
:n1,n2 w eee ?將文件中n1行至n2行的內容保存成eee文件
:!command ?暫時離開vi到命令行模式下執行command的顯示結果。例如,“:! ls /home”即可在vi當中查看/home下面以ls輸出的文件信息
寄存器操作:
"?nyy ?將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw ?將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl ?將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數字
"?p ?取出寄存器?中的內容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數字
ndd ?將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中
vim操作環境(不建議修改/etc/vimrc文件;建議手動修改~/.vimrc文件)
總結
以上是生活随笔為你收集整理的linux vi编辑器 Ctrl s,Linux命令-----vi/vim编辑器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php transfer-encodin
- 下一篇: redhat linux 安装ftp服务