歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎之Vim命令

Linux基礎之Vim命令

日期:2017/2/28 14:45:16   编辑:Linux教程

Vim是從 vi 發展出來的一個文本編輯器。

Vim有三種模式:編輯模式--輸入模式--末行模式

模式轉換:輸入模式<<==>>編輯模式<<==>>末行模式

編輯模式 --> 輸入模式:

i: insert, 實現在當前光標所在處字符前面轉換為輸入模式;

a: append, 實現在當前光標所在處字符後面轉換為輸入模式;

o: 實現在當前光標所在行的下方新建一個空白行並轉換為輸入模式;

I: 在當前光標所在行的行首轉為輸入模式;

A: 在當前光標所在行的行尾轉為輸入模式;

O: 在當前光標所在行的上方新建一行,並轉為輸入模式;

輸入模式 --> 編輯模式:

按下Esc鍵;

編輯模式 --> 末行模式:

鍵入:

末行模式 --> 編輯模式:

Esc, Esc

光標跳轉:

字符間跳轉:

h: 左

l: 右

j: 下

k: 上

#h: 向左側跳#個字符;

單詞間跳轉:

w: 後一個單詞的詞首

e: 跳至當前或下一個單詞啟尾;

b: 跳至當前或前一個單詞啟首;

句子間跳轉:

): 下一句;

(: 前一句;

段落間跳轉:

}: 下一段;

{: 前一段;

行間跳轉:

1G, gg:

G:

#G:

行內跳轉:

^: 行首的第一個非空白字符

$: 絕對行尾

0: 絕對行首

關閉文件:

在末行模式下:

:w 保存

:q 退出

:! 強制

:wq

: q!

: x

在編輯模式下:

ZZ:保存退出;

qall

打開文件:

vim [options] /path/to/file

同時打開多個文件

vim +# /path/to/file

next 下一個;

last 最後一個;

first 第一個;

prev 前一個

-O: 打開時垂直分割窗口

-o:打開時水平分割窗口

編輯命令:

x: 刪除單個字符

#x:

d: 刪除命令

對應跳轉的符號而刪除
dw:

db:

de:

d^

d$

dw:刪除單詞
dd:刪除一行
#dd刪除光標所在行並向下#行

編輯操作可撤消:

u: vim默認會最近50次的操作,u命令可逐一撤消此前的編輯操作;

撤消此前的撤消:Ctrl+r:

粘貼操作:p

paste, put

p

刪除的是整行:

p: 在當前光標所在行的下方粘貼;

P:在當前光標所在行的上方粘貼

刪除的不是整行:

p: 在當前光標所在處字符的後方粘貼;

P:在當前光標所在處字符的前方粘貼;

復制:y, yank

yy

#yy

y$

y^

復制的是整行:

p: 在當前光標所在行的下方粘貼;

P:在當前光標所在行的上方粘貼

復制的不是整行:

p: 在當前光標所在處字符的後方粘貼;

P:在當前光標所在處字符的前方粘貼;

同一文檔窗口分割:

Ctrl+w,s: 水平分割

Ctrl+w,v: 垂直分割

Ctrl+w, 箭頭

窗口屬性定義:

顯示行號:

set number, set nu

set nonumber, set nonu

自動縮進

set autoindent, set ai

set noai

不區分字符大小寫

set ignorecase, set ic

set noic

獲取幫助:

set

顯示匹配的括號:

set showmatch, set sm

set nosm

語法著色:

syntax on

syntax off

搜索高亮顯示

set hlsearch

set nohlserach

vim的配置文件:

全局:/etc/vimrc

個人:~/.vimrc

查找替換:

:地址定界s/查找模式/替換成的內容/gi

:地址定界s@查找模式@替換成的內容@gi

Gi:Globalignorecase 後邊可以不寫gi

末行模式下的操作練習

為滿足1-3題做題需要,在當前目錄下新建一簡單的文檔,a.vim,內容如下

# abc

# abc

abc #

abc345abc

首先使用命令vim進入編輯模式

# vim a.vim 輸入:號就可進入末行模式

下面只給出vim末行模式下的代碼

1,刪除行首開頭的#:

%s@^#@@gi

%s@^#@@g

%s@^#@@

2,刪除行首開頭的#及後面緊跟的空白字符;

%s@^#[[:space:]]\{1,\}@@

3,為空白字符開頭的行的行首加上#;

%s@^[[:space:]]@#&@

4,刪除/etc/grub.conf文件中行首的空白符;

%s@^[[:space:]]*@@

5,替換/etc/inittab文件中"id:3:initdefault:"一行中的數字為5;

%s@id:3:ini@id:5:ini@

/id:3:initdefault .s@[0-9]@5@g (先將光標鎖定到這一行,然後再替換,要分行進行)

6,刪除/etc/inittab文件中開頭的#號;

%s@^#@@g

7,刪除某文件中開頭的#號及後面的空白字符,但要求#號後面必須有空白字符;

%s@^#[[:space:]]\{1,\}@@g

8,為指定范圍內的行的行首添加#;

1-13行行首添加#

1,13s@^@#@g

9,顯示行號,取消行號

:set nu

:set nonu

10,設置搜索結果高亮顯示

: set hlsearch

如果之前有搜索過文本中的內容,則這些內容會高亮顯示出來

要讓字符回復原來的顏色,取消設置即可

:set nohlsearch

上文中列出的等等用法均可以按照第9,10題加以完成,不再多做介紹。

Copyright © Linux教程網 All Rights Reserved