码迷,mamicode.com
首页 > 系统相关 > 详细

[8-30]文本编辑工具VIM的基本用法和特性

时间:2015-09-06 11:05:12      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:vim

本文旨在梳理文本编辑工具VIM的常用使用方法

知识储备


  • VIM是VI[Visual Interface]的增强版,是全屏的文本编辑器;

  • VIM支持插件的工作机制,能拓展功能,可以编辑ANSII、Unicode等文本文件;

  • 它是一款模式化的编辑器:编辑模式、输入模式、末行模式;

  • VIM自带内建学习教程,可以使用命令Vimtutor;

模式化编辑器


  • 编辑模式:也叫命令模式,能够进行文本 复制、文本移动、文本删除等宏观操作;

    • 通常使用 ESC键 进入

  • 输入模式:输入的内容就是文本文件内容的组成部分,我理解为微观的细节的操作

    • i     在光标所在处插;

    • a    追加插入,光标后插入;

    • I     行首插入;

    • A    行尾插入;

    • o    下方新建行,插入;

    • O    上方新建行,插入;

  • 末行模式:内嵌的命令行接口,通过工具的内置接口完成许多配置工作

    • 通常使用 :键 进入

VIM的打开和关闭


  • 打开指定文件 #vim /PATH/FILE

  • 若给定的路径文件不存在,则也能进入VIM编辑,相当于新建文件[这个文件可选保存];

  • 打开文件时从第8行开始  #vim +8 /PATH/FILE;

  • 第一次匹配到的模式开始 #vim -/PATTERN /PATH/FILE;

  • 几种关闭退出的方法,通常是在末行模式下退出

    • :q        直接退出[只适用于打开了文件未作编辑],如果有修改是无法退出的

    • :wq     保存并且退出

    • :x        简写,同上

    • :w /PATH    保存到指定文件位置,说白了是另存为

    • q!        不保存退出

    • 编辑模式下 ZZ保存退出

光标跳转


字符间跳转
H

左跳一个字符

L右跳一个字符
J下跳一个字符
K上跳一个字符

#COMMAND:如3H,指定位置字符 跳转

单词间跳转[Linux中单词指的是由字母和数字组成的连续字符串,符号算独立单词]
W跳转到后面单词词首
E当前单词或后一个单词词尾
B当前单词或前一个单词词首
支持#COMMAND:3W 3E 来实现多单词跳转


行内跳转

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

0:跳转至行首,绝对行首,可以是空白

$:跳转至行尾,最后一个可能是空白绝对行尾

行间移动

#G:跳转至100行,100G

1G:跳转到第一行

gg:2个小写的gg,也可以跳转到第一行

G:跳转至最后一行

句间移动

)

( 

段落间移动

}:跳转到下一段段首

{:跳转到上一段段首

编辑命令



字符编辑

x删除光标所在处字符

#x:删除光标及向后x个字符,如4x,删除从当前光标起,连续4个字符

xp:光标所在处字符和后面紧跟的字符 对调

r:替换光标所在处的字符 如in 光变移动n上,用rs 即可 is,#r 不常见

删除命令

dd:删除指定行,可以结合3dd

d^, d$, d0

dw, de, db

注意:删除的内容会被vim编辑器保存至缓冲区当中,可以撤销,最后一次删除操作可以粘贴,类似于移动效果

粘贴命令

如果此前复制或删除的内容不是一个完整行

p:粘贴至当前光标所在处后面;

P:粘贴至当前光标所在处前面

如果复制的内容是完整行[可以是多行]

p:粘贴至当前光标所在行下方;

P:粘贴至当前光标所在行上方;

复制命令

yy:复制光标所在行,可以结合3yy

y^, y$, y0

yw, ye, yb

改变命令

yy:复制光标所在行,可以结合3yy

c^, c$, c0

cb, ce, cw

cc回到绝对行首

c 删除一部分内容,从编辑模式--->输入模式

撤销操作

<1> 编辑模式下u,缓冲区可以保存最近的n次操作,是可以定义的,默认是u

<2> Ctrl+R不想撤销了,撤销此前的撤销, 即恢复此前的撤销操作

<3> .:重复前一个编辑操作,比如dd之后 用.号

翻屏操作

Ctrl+B:向前一屏 

Ctrl+F向后一屏 

Ctrl+D向后半屏 

Ctrl+U向前半屏 

末行模式


地址,定界

<1>:1第10行,也可以加上编辑命令如#10d

<2>:1,10 绝对表示方式,第1行到第10行,合计10行

<3>:1,+5 相对表示方式,第1行开始,向下5行,合计6行

<4>:.  当前行

<5>:$ 末行

<6>:% 全文,相当于:1,$

<7>:/PAT1/  第一次被此模式匹配的行

<8>:3,/PAT1/ 从第3行开始,到第一次被模式匹配到的行结束

<9>:/PAT1/,/PAT2/  范围在第一次被模式匹配到的行和第二次之间

注意:后面可以添加编辑命令

d,y

w,r

W例子:1,100 w /PATH

R例子:请查询如何使用,需要加文件



查找

/PATTERN  向尾部进行

?PATTERN 向首部进行

支持n、N询下一个



查找替换

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

在末行模式下,在地址定界的范围内,完成查找替换操作 

要查找的内容:可使用模式 替换为的内容:不可以使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容 \1 \2 ..... &:

引用“要找的内容”匹配到的整个内容 请注意这样使用,需要对要查找的内容使用\( \)



修饰符

<1>i   忽略大小写

<2>g  全局替换,默认情况下只替换每行第一次匹配到的,一行中后续的不替

<3>/  用作分割符,有特殊意义,所以要查找的内容或替换的内容包含此符号,必须要转移,使用格式\ / 分割符可以替换为其他字符:例如@,#等;

:3,100s/pid/process/g

VIM技巧


  • 可以同时编辑多个文件#vim file1 file2 file3 ...

  • 默认在第一个编辑文件上,可在末行模式下自由切换

    • :next, :prev 后一个文件、前一个文件

    • :first, :last 第一个文件,最后一个文件

    • :wqall  退出保存所有文件

    • :q!all 所有都不保存退出

  • 末行模式提供了自由切换,那么自由切换提供了多个文件的复制粘贴功能

  • #Vim -o File1 File2 File3  水平分割 还可以再次分

  • #Vim -O FileA FileB FileC  垂直分割

  • 多文件窗口分割:

      • Vim -o | -O FILE1 FILE2

      • Ctrl+W+箭头  ,arrow 子窗口间切换

  • 单文件窗口分割:

      • Ctrl+w,s:   split,水平分隔

      • Ctrl+w,v:  vertical,垂直分割

定制工作特性


工作特性本质上是以参数形式定义在VIM的配置文件中

VIM配置文件有2个:

  • /etc/vimrc 全局VIM的配置文件

  • ~/.vimrc    默认不存在,可以手工创建,用户专有的VIM配置文件

(1)行号

        显示:set number  简写 set nu

        禁用:set nonumber 简写 set nu

(2)括号匹配

        显示:set sm

        禁用:set nosm

(3)缩进

        显示:set ai

        禁用:set noai

(4)高亮搜索

        开启Set hlsearch  默认是开启的

        关闭no hlsearch

(5)语法着色

        开启syntax on

        禁用Syntax off 默认禁用的

(6)内置的忽略字符大小写

        Set ic

        Set noic  默认是禁用的

    

:help 获取帮助

:help SUBJECT


本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1691760

[8-30]文本编辑工具VIM的基本用法和特性

标签:vim

原文地址:http://bluebox.blog.51cto.com/8852456/1691760

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!