vim

vim 编辑器

vim 和 vi的区别

1.vi不会高亮显示

2.vim会高亮显示

vim 三种模式

普通模式(命令模式)

# 跳转光标

G:将光标跳转到最后一行(Shift + g)

gg:将光标跳转到第一行

Ngg:将光标跳转到指定行(N代表正整数)

$:将光标跳转到当前所在行的行末

^:将光标跳转到当前所在行的行首(或者按 0)

# 翻页

Ctrl + f :向下翻页

Ctrl + b :向上翻页

# 复制粘贴

yy:复制当前光标所在行的内容

p:将复制的内容粘贴到当前光标所在行的下一行(剪切或者复制的是行)

P:将复制的内容粘贴到当前光标所在行的上一行(剪切或者复制的是行)

#当复制或者剪切的是字符的时候

p:往当前光标所在字符的右边粘贴

P:往当前光标所在字符的左边粘贴

Nyy 或者 yNy:复制多行内容(N代表正整数)

# 删除剪切

dd:剪切

Ndd 或 dNd:剪切多行内容(N代表正整数)

dG:剪切当前光标所在行到文件末尾所有内容

dgg: 剪切当前光标所在行到文件开头所有内容

x:剪切当前光标所在的字符

X:剪切当前光标所在字符的前一个字符

D:(shift + d)删除当前光标,所在字符,之后的内容(行)

# 撤销替换

u:撤销上一步操作

Ctrl + r:恢复刚才的撤销操作

r:替换当前光标所在的字符(只能一个字符替换一个字符,不能替换多个)

R:替换当前光标所在字符和之后的所有内容,直到按ESC取消


编辑模式

# 从普通模式(命令模式)切换到编辑模式

i(insert):在当前光标所在字符之前,插入内容

I(shift + i):将当前光标跳转至行首,然后进入编辑模式,即可插入内容

## 比如说,我们想注释多行内容

1、首先将光标移动到,你要注释的行的第一行。

2、按Ctrl + v,进入到 可视 块

3、按Shift + i

4、输入井号 #

5、按ESC

o:往当前光标所在行的下一行插入内容

O(shift + o):往当前光标所在行的上一行插入内容

s:删除当前光标所在的字符,并且进入编辑模式

S(shift + s):删除当前光标所在行内容,并且进入编辑模式

a:在当前光标所在字符之后,进入编辑模式,插入内容

A(shift + a):在当前光标所在行末尾,进入编辑模式,插入内容

#从编辑模式 切换回 命令模式  按 `ESC`


末行模式

# 编辑模式 无法直接切换到末行模式

# 普通模式 才能直接切换到末行模式

# 使用 冒号, 从普通模式切换到末行模式

:N  切换后,直接输入  N (正整数) 会跳转到指定行

:wq  保存退出(写入并且退出)

write quit

:w  保存不退出

:q  退出不保存

:wq!

:q!

:w!

!: 强制执行

:x 保存退出

ZZ(shift + zz):保存退出

:set nu  显示文件行号

:set nonu 取消显示文件行号

:set ic  忽略大小写

:set noic 取消忽略大小写

:set ai  自动缩进

:set noai 取消自动缩进

:set list 显示制表符,tab..

:set nolist 取消显示制表符

:%s#binkp#zls#g

:%s#binkp#zls#gc

%:全文替换

1,10  1-10行替换

s:替换

g:匹配的所有

c:提示询问

替换为 tcpmux (y/n/a/q/l/^E/^Y)?

y:替换一次

n:选中下一个

a:全部替换

q:退出

l:退出并询问


视图模式

# 可视 行(只能在普通模式 命令模式进入)

Shift + v

# 可视 块

Ctrl + v

### 将一个文件的5-15行,前面加注释

1.首先将光标跳转到第五行

1)5gg

2)上下左右

3):5

2.Ctrl + v 进入可视块模式

3.15gg,将光标选中5-15行

4.Shift + i 进入编辑模式

5.输入 # 号

6.输入 ESC



习题:

请把/etc/passwd 复制到/root/目录下,并重命名为test.txt

[root@iz2zef0336jwbp5hdcc31pz ~]# cp -f /etc/passwd /root/test.txt

用vim打开test.txt并设置行号

[root@iz2zef0336jwbp5hdcc31pz ~]# vim test.txt

  1 yntax on

  2 set fenc=utf-8

  3 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

  4 set number

  5 set autoindent

  6 set smartindent

  7 set tabstop=4

  8 set shiftwidth=4

  9 set ruler

10 set incsearch

11 set showmatch

12 set matchtime=10

13 set ignorecase

14 set cursorline

15 set t_Co=256

16 vim ~/.vimrc

17

~                                                                                     

~                                                                                     

~                                                                                                                                                                     

:set nu 

分别向下、向右、向左、向右移动5个字符

用方向键移动

分别向下、向上翻两页

向下翻 ctrl+f  向上翻ctrl+b

把光标移动到第10行

10gg

让光标移动到行末,再移动到行首

行末 $  行首 ^

移动到test.txt文件的最后一行

G

移动到文件的首行

gg

搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索

:set ic

:/root

把从第一行到第三行出现的root 替换成--alex--

:1,3%s#root#--alex--#gc

还原上一步操作

u

把整个文件中所有的root替换成--alex-

:%s#root#--alex--#gc

把光标移动到20行,删除本行

20gg

dd

还原上一步操作

u

删除第19行

19gg

dd

还原上一步操作

u

删除从5行到10行的所有内容

5gg

6dd

还原上一步操作

u

复制2行并粘贴到11行下面

2yy

11gg

p

还原上一步操作(按两次u)

u

u

复制从11行到15行的内容并粘贴到8行上面

11gg

5yy

8gg

p

还原上一步操作(按两次u)

u  u

把13行到18行的内容移动文件的尾部

13gg

6dd

$

p

还原上一步操作(按两次u)

u u

光标移动到首行,把/sbin/nologin改成/bin/bash

^

:%s#/sbin/nologin#/bin/bash#g

在第一行下面插入新的一行,并输入"# Hello!"

o

#Hello

保存文档并退出

:wq

#第二大题

01.vim编辑器具哪三种工作模式

普通模式

编辑模式

末行模式

02.已知文件oldboy.txt内容如下

cat>oldboy.txt<<EOF

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

EOF

(1) 显示行号

[root@iz2zef0336jwbp5hdcc31pz ~]# cat -n oldboy.txt

    1 I am oldboy teacher!

    2 I teach linux.

    3

    4 I like badminton ball ,billiard ball and chinese chess!

    5 my blog is http://oldboy.blog.51cto.com

    6 our size is http://blog.oldboyedu.com

    7 my qq is 49000448

    8

    9 not 4900000448.

    10 my god ,i am not oldbey,but OLDBOY!

(2) 过滤出以m为开头的行

[root@iz2zef0336jwbp5hdcc31pz ~]# grep '^m' oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

my god ,i am not oldbey,but OLDBOY!

(3) 过滤出以m为结尾的行

[root@iz2zef0336jwbp5hdcc31pz ~]# grep 'm$'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

(4)

root@iz2zef0336jwbp5hdcc31pz ~]# grep -vn '^$' oldboy.txt

1:I am oldboy teacher!

2:I teach linux.

4:I like badminton ball ,billiard ball and chinese chess!

5:my blog is http://oldboy.blog.51cto.com

6:our size is http://blog.oldboyedu.com

7:my qq is 49000448

9:not 4900000448.

10:my god ,i am not oldbey,but OLDBOY!

(5) 将光标移动到my blog is http://oldboy.blog.51cto.com这一行,如何快速删除后面的URL并进入到编辑模式输入www.baidu.com

s

(6) 将所有的数字替换成a

:%s#4900000448#a#g

(7) 搜索oldboy忽略大小写

:set ic

:/oldboy

(8) 显示制表符

:set list

(9) 取消行号,保存退出

:set nonu

:wq

03.vim如何插入字符(至少写出三种)

i

o

a

04.根据文件回答下列习题

[root@qzg ~]# cat proxy.conf

server {

    Listen 8080;

    Server_Name vim.OldboyEDU.com;

    location / {

        proxy_pass http://127.0.0.1:8080;

        proxy_set_header Host $http_host;

        proxy_set_header X-Forward-for;

        proxy_intercept_errors on;

        proxy_next_upstream error timeout;

        proxy_next_upstream_timeout 3s;

        proxy_next_upstream_tries 2;

        error_page 500 502 403 404 = /proxy_error.html;

    }

    location = /proxy_error.html {

        root /code/proxy;

    }

}

1).使用vim打开proxy.conf文件

vim proxy.conf

2).修改Listen为listen小写,并将8080修改为80

:%s#Listen#listen#g 

:%s#8080#80#g

3).修改Server_Name为server_name小写。

:%s#Server_Name#server_name#g

4).修改vim.OldboyEDU.com为vim.oldboy.com

:%s#vim.OldboyEDU#vim.oldboy.com#g

5).在server_name行下插入一行 root /code;

o

6).复制5-14行的内容,然后将其粘贴到14行下面

5gg

10yy

14gg

p

7).删除与proxy_set_header相关的两行全部删除

:set nu

6dd

7dd

8).如上操作完成后,在13-20行前面加上#号(请批量操作)

1、13gg

2、按ctrl+v,进入到可视块

3、按shift+i

4、输入#

5、按ESC

05.显示以下报错怎么解决

E325: ATTENTION

Found a swap file by the name "/etc/sysconfig/network-scripts/.ifcfg-eth0.swp"

          owned by: root  dated: Wed Nov  6 10:14:51 2019

        file name: /etc/sysconfig/network-scripts/ifcfg-eth0

          modified: no

        user name: root  host name: centos74

        process ID: 46981 (still running)

While opening file "/etc/sysconfig/network-scripts/ifcfg-eth0"

            dated: Wed Oct  9 11:43:30 2019

(1) Another program may be editing the same file.  If this is the case,

    be careful not to end up with two different instances of the same

    file when making changes.  Quit, or continue with caution.

(2) An edit session for this file crashed.

    If this is the case, use ":recover" or "vim -r /etc/sysconfig/network-scripts/ifcfg-eth0"

    to recover the changes (see ":help recovery").

    If you did this already, delete the swap file "/etc/sysconfig/network-scripts/.ifcfg-eth0.swp"

    to avoid this message.

Swap file

[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

06.vim编辑的基本使用流程,以及vi编辑的三种模式和转换关系

Vim工作有三种模式:vim+文件进入普通模式,按“i”就是编辑模式,在按’:‘就是末行模式,再按’ESC‘回到普通模式

07.vim编辑文件时调到文档的最后一行的命令是_G__,跳到第100行的命令是_100gg___

08.复制/etc/passwd到opt目录下,编辑/opt/passwd文件,如何快速将1-10行的前面都插入qiandao

cp /etc/passwd /opt/

vim /opt/passwd

1gg

ctrl + v

1-10

I

qiandao

09.vi编辑器使用_____dd__命令删除当前光标所在的一整行

10.在vim内操作如下指令,并写出指令对应的理解

(1)命令模式

  G    光标跳转到行末       

  gg    光标跳转到行首     

  5gg 光标跳转到第5行

  $    移动到行末       

  ^      移动到行首     

  ctrl+f    向下翻页 

  ctrl+b  向上翻页   

  yy        复制 

  3yy        复制3次 

  p(小写)  往当前光标所在字符的右边粘贴 

  P(大写)    往当前光标所在字符的左边粘贴 

  ZZ      保存退出     

  dd        删除 

  5dd      删除第五行 

  dG        删除左后一行   

  D          删除光标所在的位置及向后的所有内容,针对行操作 

  x(小写)    保存退出

  X(大写)  保存退出 

  u          撤销 

  r        将一个文件的所有写入到当前文件的当前行下面   

  R          将一个文件的所有写入到当前文件的当前行上面       

(2)命令模式进入编辑模式

      i    在当前光标插入内容       

  I          光标快速的移动到行首,并进入编辑模式,在当前光标前插入内容   

  a          在当前光标后插入内容 

  A          光标快速的移动到行尾,并进入编辑模式,在当前光标后插入内容 

  o(小写)  在当前行的下一行另起一行,并进入编辑模式 

  O(大写)  在当前行的上一行另起一行,并进入编辑模式     

(3)末行模式


  :w    保存不退出       

  :w    保存不退出         

  :q        退出不保存   

  :q!      强制退出不保存     

  :wq        保存并退出   

  :wq!      强制保存并退出   

  :x          保存退出 

  :number(数字)

  /      搜索指定字符     

  :set nu      显示行号


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355