孫悟空大戰孫猴子之VIM編輯器

咱們經常使用的文本編輯軟件有MS WORD,國人的WPS也不遜色,最近也推出了linux版的WPS,而與之相對應的是處理ASCII編碼的文本處理工具,最經常使用的當屬vi /vim了,今天咱們介紹vim(Visual Interface inproved,可視界面加強版)linux

爲了練手,咱們將一些複雜的文本文件保存到用戶家目錄下正則表達式

例如我把cp /etc/httpd/conf/httpd.conf ~cyb/ 咱們把httpd的配置文件複製到家目錄下練手。vim

A:vim的命令格式.

vim [options][/path/to/somefile]bash

例如咱們要在當下路徑建立一個a.txt的文本,咱們使用以下命令app

# vim a.txtide

B.vim的具體使用

Vim 有三種模式:1,編輯模式(命令行模式)2,輸入模式 3,末行模式工具

首先,咱們說明,3者之間是如何轉換的編碼

編輯模式---------à輸入模式spa

1 iinstert:在當前光標所在處前面插入命令行

2 aappend:z在當前光標所在行後面插入

3 o,在當前光標所在行的的下方新建一個空白行,而且轉爲輸入模式

4 I 光標跳轉至光標所在行首並改成輸入模式

5光標跳轉至光標所在的行尾處並改成輸入模式

6 O光標跳轉至光標所在行的上一行,並改成輸入模式

輸入模式轉爲編輯模式

ESC鍵便可

編輯模式轉爲末行模式

鍵入:

末行模式轉爲編輯模式:

兩次ESC

光標跳轉

字符間的跳轉:

                K()

  H()                  L()

                J()

還有 #h 能夠調準#個字符,先按住#(例如3)向左跳轉3個字符

This is the main Apacheserver configuration file.It containsthe

光標在’s’處,而後按住3,再按h,光標到’T’

咱們來看但此間跳轉,

咱們以此段話爲例

咱們來看句間跳轉

):下一句,

(:前一句按(

默認以 . 做爲分隔符

段落間跳轉

上一段

下一段

行間跳轉

gg 或者 1G 跳轉至行首

G,跳轉至行尾

#G,跳轉至第#行的行首

行內跳轉

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

:絕對行尾

:絕對行首

咱們來看怎麼關閉文件

在末行模式下:

退出

保存

!強制

wq 保存並退出

q!強制退出

等價於wq 保存並退出

在編輯模式下

ZZ 保存並退出

qall 退出所有(由於有時候可能會一次打開多個文件去編寫)

打開文件

vim –[options][file]

-o 打開多個文件時,上下屏顯示

-O 打開多個文件時,左右屏幕顯示

左屏幕到右屏幕 ctrl+w

若是不加

咱們同時打開多個文件時,須要文本間跳轉,在末行模式下,輸入如下命令

next 下一個

last最後一個

first 頭一個

prev 前一個

編輯命令

刪除單個字符

#x:刪除#個字符

dw 刪除光標所在處的單詞

db: 刪除光標所在處的前一個單詞

de: 刪除光標所在處及下個單詞

d^: 從行首刪除到當前光標所在處

dd 刪除所在行

d$ 當前位置刪除到光標所在行尾

在末行模式下能夠地址定界,使用d命令能夠更加靈活

起始地址,結束地址

$:最後一行

.當前光標所在行

%,全文

1,7d ,第一行到第七行所有刪除

%d 刪除全文

1,$d 從第一行到最後一行所有刪除

1,+6d 從第一行,到1+6行所有刪除

1, $-2d 從第一行到當前光標所在行數-2所在的行刪除

.,+3 d從當前行到之後+3行全部的行所有刪除

撤銷此前的操做

U, vim會保存最近50次的操做,U命令可逐一撤銷此前編輯的操做

咱們還能夠撤銷此前的撤銷 ctrl+r

--à(此前一步操做)----à(如今操做)

    (撤銷u<--------

-------à(撤銷撤銷ctrl+r)

複製

yy 複製當前行

#yy 複製當前行所在的向下3行,

y$ 複製光標所在處至行尾

y^ 複製當前行到行首(光標自動跳轉到行首)

yw ,複製當前單詞

粘貼

p在光標所在處的後方粘貼

P在光標所在出的前方粘貼

vimoptions

-# 默認打開後光標所在處爲#行的行首

咱們介紹翻屏

Ctrl+f 向文件尾部翻一屏

Ctrl+d 向文件首部翻一屏

Ctrl+d 向文件尾部翻半屏

Ctrl+u 向文件首部翻半屏

Vim支持文本搜索

/keyword:從當前光標所在處向文件尾部查找

keyword:從當前光標所在處向文件首部查找

n:下一個,跟命令查找方向相同

N:前一個,跟命令查找方向相反;

固然能夠支持模式搜索,支持正則表達式

窗口屬性的定義

Set number,set nu顯示行號

查找和替換

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

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


一、刪除/etc/grub.conf文件中行首的空

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

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

%s@id:3:@id:5:@g

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

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

四、爲指定範圍內的行的行首添加#;1,10s@^@#@g

相關文章
相關標籤/搜索