vim編輯器使用介紹

vim基礎

vim是由vi發展來的一個強大的文本編輯器,代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。
vim比較難懂,一開始接觸時,進入去了都不知怎么退出,但是我么只要深入學習,多應用,慢慢就會適應它。下面介紹下它的一些簡單使用方法。

1.打開文件

vim +n 文件名
vim 文件名
n表示打開文件后讓光標直接處于第n行。

2.vim三種基本模式

  • 編輯模式,也叫命令模式,默認打開文件時進入的就是這個模式,可以進行復制,刪除,替換等編輯操作。
  • 輸入模式
  • 末行模式 ,內鍵命令行接口。
    三種模式間之間切換
    (1)編輯模式進入輸入模式,在編輯模式下按下下面字母鍵。
    i:insert, 在光標所在處輸入,常用
    a: append,在光標所在處后方輸入
    o:在光標所在處的下方打開一個新行進行輸入,常用
    I:在光標所在行的行首輸入
    A:在光標所在行的行尾輸入
    O:在光標所在處的上方打開一個新行進行輸入
    (2)輸入模式進入編輯模式,按一下esc鍵

(3)編輯模式進入末行模式,按一下“:”鍵
(4)末行模式進入編輯模式,按一下“esc”鍵

3.關閉文件##

ZZ 保存并退出
ZQ 無條件退出,不保存
:q 退出,沒進行任何編輯時
:q! 強制退出,不保存
:wq 保存并退出
:w /PATH/TO/SOMEFILE 把文件保存到其他目錄下
:r filename 在光標后面讀入文件
:n1,n2 w filename 將n1到n2行間內容保存到另一文件

4.光標跳轉

字符間跳轉
h 左
j 下
k 上
l 右
也可以h,j,k,l 前加數字,跳轉到指定的個數字符。例如:5h表示向左移動5 個字符,5k表示光標同一位置向上移動5行
單詞間跳轉
w 光標跳到下一單詞的詞首
e 光標跳到當前或后一個單詞的詞尾
b 跳到當前或當前單詞的詞首
還可以在前面加數字進行指定個數單詞跳轉,例如5w,往前跳5個單詞到詞首
行首行尾跳轉
0 數字0,跳轉到行首
^ 跳到行首的第一個非空白字符
$ 跳到行尾
行間跳轉
G 跳到最后一行
1G,gg:跳到第一行
nG:跳到指定的n行。例如10G,是跳到第十行
n<Enter> :光標向下移動n行

句間和段間跳轉
句間跳轉,用小括號:)和(。
段間跳轉,用大括號 ‘{’ 和‘}’ 。

5.翻屏操作

ctrl+f 向文件尾部翻一屏
ctrl+b向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
回車鍵enter:按行往后翻

vim常用的編輯命令

1.字符編輯

x: 刪除光標所在的字符
[n]x:刪除刪除光標開始指定的往后n個字符,例如,vim這個單詞,假如光標在字符v處,編輯模式下輸入3x,刪除vim.。
xp: 交換光標所在字符與其后面的字符的位置,例如,要是光標在單詞vi的v上面,編輯模式下輸入xp,則他們的位置會改為iv。

2.替換命令

r:替換光標所在處的單個字符,編輯模式下輸入一次r后,再輸入想要替換為的字符即可。

3.刪除命令

dd 刪除當前行
ndd:刪除光標所在向下n行。例如10dd,刪除20行
x:刪除光標后面一個字符
X:刪除光標前面一個字符
nx:n為數字,刪除光標后面連續n個字符,例如10x。連續刪除10個字符
d0 刪除從當前光標開始到行末的內容
d$ 刪除從當前光標開始到行末的內容
cw/cW 刪除當前單詞從光標開始的部分并進入插入模式
cb/cB 刪除當前單詞從光標所在位置至單詞開始的部分并進入插入模式
dw/dW 刪除當前單詞從光標開始的部分但不進入插入模式
db/dB 刪除當前單詞從光標所在位置至單詞開始的部分但不進入插入模式
cc:刪除當前行并進入插入模式
d} 刪除當前段落從光標位置開始到段末的內容
d{ 刪除當前段落從光標位置開始到段首的內容
d) 刪除當前句子從光標位置開始到句末的內容
d( 刪除當前句子從光標位置開始到句首的內容

4.復制命令

yw 復制當前單詞從光標開始的部分
yy 復制光標所在行的所有字符
nyy:復制光標開始往后n行,例如5yy,復制5行
y$復制光標開始到行尾字符
y^復制光標開始到行首字符
y0復制光標所在行行首到光標位置字符

5.粘貼命令 p

p:為已經復制好的內容粘貼在光標所在行下方進行粘貼,例如光標要是在第20行,復制的內容將會粘貼在第20行之后。
P(大寫):為已經復制好的內容粘貼在光標所在行上方進行粘貼,例如光標要是在第20行,復制的內容將會粘貼在第20行之前。

6.撤消與重做

u 撤消更改
Ctrl-R 重做更改
“.”重復執行上一個操作

7.改變命令c,刪除后進入編輯模式

cc刪除整行所有字符串,但不會刪除該行,進入編輯模式

8.大小寫轉換

~ 將光標下的字母大小寫反向轉換
guw 將光標所在的單詞變為小寫
guw 將光標所在的單詞變為小寫
gUw 將光標所在的單詞變為大寫
guu 光標所在的行所有字符變為小寫
gUU 光標所在的行所有字符變為大寫
g~~ 光標所在的行所有字符大小寫反向轉換

vim末行模式,編輯模式下按“:”進入

1.地址定界

: n 光標轉到第n行,例如5,轉到第五行
$ :到最后一行
n1,n2 :指定行范圍,n1為起始行,n2為結束行
% :全文
一般配合d,y,c命令使用,例如1,10d刪除1到10行
w :/PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中.例如 10,20 w /tmp/1020.txt ,將10到20行保存到tmp目錄下的1020.txt文件中

2.查找與替換

/abc :從光標開始向文件尾部開始查找所有為abc字符串
?abc :從光標開始向文件首部開始查找所有為abc字符串
n 重復前一個搜索動作,搜索下一個 ,和命令方向相同
N 反向搜索下一個,和命令方向相反

  • :在文件中向前搜索當前光標所在的單詞
    “#” :在文件中向后搜索當前光標所在的單詞
  • 查找與替換格式分隔符:s/…/…/ ,s@@@,s###,三種后面加g是全局查找意思,例如
    s###g。
  • :n1,n2s#word1#word2#g n1,n2為數字。意思是在n1,n2
    行之間查找word1這個字符串并替換為word2,例如:100,200s#for#FOR#g,在100到200行之間查找for這單詞,替換為大寫FOR。
  • :1,$s#word1#word2#g 意思是在第1行到最后一行查找word1這個字符串并替換為word2。
  • :1,$s#word1#word2#gc 在第1行到最后一行查找word1這個字符串并替換為word2。在替換前提示用戶是否進行取代。

末行模式查找支持正則表達式

例如:

1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#
:1,$s@^[[:space:]]@#@g
2.復制/boot/grub/grub.conf文件至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符
:%s@^[[:space:]]+@@g
3.刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟至少一個空白字符的行行的#和空白字符
:%s@^#[[:space:]]+@@gc
4.為/tmp/grub.conf文件中的前三行的行首加#號
:1,3s@^#@##@g
5.將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0最后的0改為1

:%s#\(enabled\|gpgcheck\)=0#\1=1#g

vim可視化

可視化是為了便于選擇文本,vim引入的一種模式
在編輯模式下按下面的字母:
v 進入字符選擇可視化模式,光標經過的地方會反白選擇
V 進入行可視化模式,光標經過的行會反白選擇
Ctrl+v 進入區塊可視化模式,可以用長方形的方式選擇字符。
在可視化模式選擇后可以按,y,d,進行復制和刪除操作

vim多文件編輯功能

1.打開多文件 vim file1 file2 …….

選項:-o 水平分割窗口
-O:垂直分割窗口

2.文件間切換 和退出

:next切到下一個文件
:prev切到上一個文件
:first切到第一個文件
:last 切到最后一個文件
:wqall所有文件保存并退出
:wall保存所有文件
:qall退出所有文件

3.窗口之間切換

按下ctrl+w組合鍵,然后按箭頭鍵進行切換
單文件窗口下再進行窗口分割:
按下ctrl+w組合鍵,然后按s:水平分割窗口
按下ctrl+w組合鍵,然后按v:垂直分割窗口

vim定制

1、行號
顯示:set number, 簡寫為set nu
取消顯示:set nomber, set nonu
2、括號匹配高亮
匹配:set showmatch, set sm
取消:set nosm
3、自動縮進
啟用:set ai
禁用:set noai
4、高亮搜索
啟用:set hlsearch
禁用:set nohlsearch
:noh 取消搜索后結果的高亮顯示
5、語法高亮
啟用:syntax on
禁用:syntax off
6、忽略字符大小寫
啟用:set ic
禁用:set noic
7.設置tab鍵縮進4個字符;set tabstop=4
8.set autoindent 設置自動縮進

9.set shiftwidth=4 表示每一級縮進的長度為4個空格

注意:在末行模式下的設定,僅對當前vim進程有效。
要永久有效:修改全局配置文件:/etc/vimrc

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88258

(0)
N27_dxldengN27_dxldeng
上一篇 2017-11-09 11:20
下一篇 2017-11-11 11:18

相關推薦

  • 基于Keepalived實現LVS雙主高可用集群

    前言 前面說過基于heartbeat的LVS高可用方案,今天帶來另一種解決方案:基于Keepalived實現LVS雙主高可用集群。什么是Keepalived呢,keepalived觀其名可知,保持存活,在網絡里面就是保持在線了, 也就是所謂的高可用或熱備,用來防止單點故障的發生。本文將詳細講述Keepalived工作原理及高可用解決方案的實現。 相關介紹 K…

    Linux干貨 2015-06-16
  • Linux學習之數據重定向

    大綱: 一、數據重定向定義 二、數據重定向分類 三、數據重定向作用 四、示例 一、數據重定向:命令的運行的結果默認輸出在監視器上,重定向就是把這個結果輸出到其它地方或其它文件。 二、數據重定向分類: 1.標準輸出: (standard output,簡稱stdout,代碼為 1 ,使用 > 或 >>):命令執行成功輸出的正確提示信…

    Linux干貨 2015-06-24
  • 實驗:yum、編譯安裝、swap

    實驗:在centos7實現光盤yum源 1yum install autofs 2現在啟動systemctl start autofs 3開機啟動systemctl enable autofs 4 cat /etc/yum.repos.d/base.repo[centos7]name=centos7 repobaseurl=file:///misc/cdgp…

    Linux干貨 2017-04-25
  • 文件系統

            文件系統表現為單個統一的層次結構:從目錄/開始并通過若干數量的子目錄繼續向下擴展,/也叫做根目錄。這種單一的層次系統和 Windows 的不一樣,后者的分區有專門的名字空間。        &n…

    Linux干貨 2016-02-28
  • Linux發展史

    日期:2016-10-12  Bell,MIT與GE的『Multics』系統     早期的計算機還很不普遍,除非是軍事或者高科技用途,或者學術單位的學術研究,否則真的很難接觸到。而且計算機架構很難使用。那個時候,程序設計者必須先將程序相關的信息在讀卡紙上面打洞然后將讀卡紙插入卡片閱讀機來將信息讀入主機中運算…

    Linux干貨 2016-10-14
  • 好好學習 天天向上 先試試

    Linux干貨 2016-10-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-11-15 15:04

    注意排版。

欧美性久久久久