vim简介 2020/1/2

vim编辑器

vi:visual interface:文本编辑器

文本:ACSII,Unicode

文本编辑器种类:

  1. 行编辑器:sed
  2. 全屏编辑器:nano,vi

VIM - Vi IMproved   :vim是vi的加强版

使用:

vim:模式化的编辑器

基本模式:

  1. 编辑模式,命令模式(默认)
  2. 输入模式
  3. 末行模式:vim内置命令行接口

打开文件:

#vim  [OPTION]... FILE...

     选项:

      1、+# :打开文件后,直接让光标处于第#行

      2、+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

 

模式转换

编辑模式——》输入模式

i:insert,在光标所在处前输入

a:append,追加,在光标所在处后面输入

o:在当前光标所在行下方,打开一个新行,并进入输入模式

O:在当前光标所在行上方,打开一个新行,并进入输入模式

I:光标所在行,行首输入

A:光标所在行,行尾输入

c

C

输入模式——》编辑模式

Esc

编辑模式——》末行模式

末行模式——》编辑模式

Esc

末行模式——》输入模式

 

关闭文件

     1、:q  退出

     2、:q!  强制退出,不保存修改

     3、:wq  保存退出

     4、:x   保存退出

     5、:w /PATH/TO/SOMEWHERE 保存到指定路径文件

     6、ZZ 命令模式下,也表示保存退出

 

在vim中快速实现光标跳转:

  1. 字符间跳转

h(左) , j(下) , k(上) , l(右)

*COMMAND,跳转*个字符,如:12h

2、单词间跳转

   w 下一个单词词首

   e 跳转至当前或下一个单词的词尾

   b 当前或者前一个单词的词首

*COMMAND,跳转*个单词,如:12w

3、行首行尾跳转

   ^ 跳转至行首的第一个非空白字符

   0 跳转至行首

   $ 跳转至行尾

4、行间移动

*G 跳转到第*行

G 最后一行

gg或者1G 回到行首

5、句间移动

 )

6、段落移动

     {

     }

 

编辑命令

  1. 字符命令

x:删除光标处的字符

*x:删除光标后的*个字符

xp:交换光标所在字符及其后一位字符的位置

  1. 删除命令

d:删除命令,可结合光标跳转字符实现范围删除

d$ , d^ , 3dw 等

dd或者D  整行删除

*dd 删除*行

 

粘贴命令(p,put,paste)

小写p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的下方。如果为非整行,则粘贴至当前光标所在处的后面。

大写P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的上方。如果为非整行,则粘贴至当前光标所在处的前面。

 

复制命令(y,yank)

y :复制,工作行为相似于d命令

     y$ , y^ ,y0 yw yb,

     yy复制整行

     *yy 复制多行

改变命令(c ,change)

c:修改

    编辑模式——》输入模式

       c$  c^  c0  cb ce cw  cc  *cc

替换命令(r,replace)

r:替换光标所在处的字符

  模式不变

  例如:ra(光标所在处字符替换为a)  3rm 7rn

 

可视化模式

v:按字符选定

V:按行选定

note:经常结合编辑命令使用:d c y

 

撤销操作

u:undo,撤销此前的编辑

  *u :撤销操作次数

 

Ctrl + r :撤销此前的撤销

 

. :重复前一个编辑操作

 

翻屏操作

Ctrl + f :向文件尾部翻一屏

Ctrl + b :向文件首部翻一屏

 

Ctrl + d :向文件尾部翻半屏

Ctrl + u :向文件首部翻半屏

 

vim自带练习教程

vimtutor

 

vim模式中的末行模式

内建的命令行接口

  1. 支持地址定界

:start,end

n:第n行

n,m:从第n行开始,到第m行结束

n,+m:从n行开始,到n+m行结束

.:当前行

$:最后一行

例如 .,$-1:当前行到倒数第二行

       %:全文,等同于 1,$

       /匹配条件1/,/匹配条件2/:从第一次被条件1匹配的行开始到第一次被条件2匹配的行结束

        使用方式:定界之后直接跟编辑命令

        d y

      如::1,9w /路径/文件.txt  将当前vim文件中的1到9行另存到文件.txt中

          :5r /路径/文件.txt 在当前vim文件第5行插入文件.txt的内容

  1. 查找

/匹配条件:从当前光标所在处向文件尾部查找

?匹配条件:从当前光标所在处向文件首部查找

   n:与命令同方向

   N:与命令反反向

  1. 查找并替换

s:在末行模式下完成查找替换操作

 s/要查找的内容/要替换为的内容/修饰符

      要查找的内容可使用:正则表达式模式

            替换为的内容:不能使用模式,但是可以\1,\2等向后引用,还可以使用&,引用前面查找时查找到的整个内容

             修饰符:i:忽略大小写

                    g:全局替换,否则默认情况下每一行只替换第一次出现

                 :\1 引用\(.\)

                 :&引用D\(.\)V,在所有D\(.\)V后加er

                 :路径替换/符号转义。

             查找替换中的分隔符/可以替换为其他字符

               如,效果同上

练习:

  1. 删除文件所有行的行首空白字符

  1. 复制/etc/rc.d/init.d/functions文件至/tmp,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#

       替换空白为#

空白前加#

 

 

vim的多文件模式(单屏幕显示)

vim {第一个文件,第二个文件,第三个文件}

文件显示切换::next  first last prev

:wall保存所有

:qall 退出所有

 

vim的窗口分割模式 (多文件同屏幕显示)

vim -o/-O {file1,file2}

-o :水平分割

-O:垂直分割

在窗口间切换 :Ctrl + w

 

单文件窗口切割

Ctrl + w,s :水平分割

Ctrl + w,v :垂直分割

 

定制vim的工作特性

配置文件:永久有效

  1. 全局:/etc/vimrc
  2. 个人:~/.vimrc   (默认不存在,需要自己创建,只对当前root用户有效)

末行配置:当前vim进程有效

  1. 行号

显示:set number (简写为set un)

取消显示:set nonumber (简写为set noun)

  1. 括号匹配

匹配:set showmatch (简写为set sm)

取消匹配:set nosm

  1. 自动缩进

启用:set ai

禁用:set noai

  1. 高亮搜索结果

启用:set hlsearch

禁用:set nohlsearch

  1. 语法高亮

开启语法高亮:syntax on

关闭语法高亮:syntax off

  1. 忽略字符大小写

启用:set ic

不启用:set noic  (默认不忽略)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值