vim的使用说明

vim的使用说明

vim是一款功能丰富而强大的文本编辑器,vim是从 vi 发展出来的一个文本编辑器。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛的使用。

vim的使用非常方便,使用方法为:vim [options] [file ..]

1、vim可以对指定文件进行编辑,也可以直接启动vim编辑器进行编辑,对于打开指定文件编辑时可以加选项进行更方便的操作,常用选项如下:

+#:#表示数字,打开文件时光标处于第#行的行首

+/pattern:打开文件时,光标处于第一个被pattern匹配到的行的行首

vim + file:直接打开file文件,并且光标处于最后一行的行首

vim -b file:以二进制方式打开file文件

vim -d file1 fiel2:可以同时打开file1和fiel2,并进行比较

vim -m file:以只读的方式打开file文件


2、vim工作过程中有三种模式,分别为:

命令模式:该模式下键盘的操作常被理解为编辑命令

插入模式:该模式下可以输入文本内容

末行模式:vim的内置命令行接口,该模式下可以执行vim的内置命令

三种模式之间的切换:

(1)默认情况下进入vim时是命令模式,从命令模式到插入模式的切换方式有多种,分别为

i:在光标所在处输入

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

a:在光标所在处的后面输入

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

o:在光标所在行的下方打开一个新行输入

O:在光标所在行的上方打开一个新行输入

(2)命令模式到末行模式:直接输入冒号(:)即可切入到末行模式

(3)末行模式到命令模式:按ESC键切换

(4)插入模式到命令模式:按ESC键切换

(5)插入模式不能直接切换到末行模式,需要先切换到命令模式然后在切换到末行模式


3、若要退出vim编辑,必须先切换到命令模式下才能退出,退出方式有命令退出和快捷键退出两种,实现方式分别为:

命令退出:先输入冒号进入末行模式,然后执行相关命令退出,命令有以下几种:

q:退出

q!:不保存强制退出

wq:保存并退出

wq!:强制保存并退出

x:保存并退出

w /path/to/somefile:另存到指定文件中

快捷键退出:

ZZ:保存并退出

ZQ:不保存退出


4、命令模式下光标的移动

(1)字符间的跳转

h键或左键:向左移动

l键或右键:向右移动

k键或上键:向上移动

j键或下键:向下移动

同时h、j、k、l还支持数字跳转:

#{j|j|k|l}:#表示数字,跳转#个字符,如5j表示向下移动5个字符

(2)单词间的跳转,支持数字跳转

w:下一个单词的词首

e:当前或下一个单词的词尾

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

(3)行首行尾跳转

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

$:跳转到行尾

0:跳转到行首

(4)行间跳转

#G:#代表数字,直接跳转到第#行的行首

G:跳转至最后一行的行首

1G或gg:跳转至第一行的行首

(5)句子间跳转(以点(.)作为分隔符),支持数字跳转

(:跳转到上一句

):跳转到下一句

(6)段落间跳转(以空白行作为分隔符),支持数字跳转

{:跳转到上一段

}:跳转到下一段

(7)翻屏操作

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

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

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

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


5、命令模式的操作(以下#代表数字)

x:删除光标所在处的字符

#x:删除光标所在处起的#个字符

d:删除命令,结合光标跳转字符使用,删除跳转范围内的字符,如w,b,e,$,0,^

D:从当前光标所在位置一直删除到行尾,等于d$

dd:删除光标所在行

#dd:删除光标所在行开始向下的#行

p:粘贴

    p(小写):缓冲区存的如果是整行,则粘贴于当前光标所在行的下方,否则,粘贴至当前光标所在处的后面

    P(大写):缓冲区存的如果是整行,则粘贴于当前光标所在行的上方,否则,粘贴至当前光标所在处的前面

y:复制,结合光标跳转字符使用,复制跳转范围内的字符,如w,b,e,$,0,^

Y或yy:复制光标所在行的整行

#yy:复制光标所在行开始向下的#行

c:修改,所谓修改就是先删除,然后再转换为插入模式。结合光标跳转字符使用,删除跳转范围内的字符,如w,b,e,$,0,^

cc或C:删除光标所在行的整行并切换到插入模式

#cc:删除光标所在行开始向下的#行并切换到插入模式

~:将光标所在处的小写字符转换成大写字母

r:替换光标所在处的字符,一次只能替换一个字符

R:切换到REPLACE模式,可以替换多个字符,按esc退出该模式

u:撤销此前的操作

#u:撤销此前的#次操作

Ctrl+r:撤销此前的撤销操作

.:重复前一个操作

#.:重复前一个操作#次


6、末行模式的操作

(1)内容定界(以下#表示数字)

#:第几行,如在末行模式输入#,然后按回车光标会直接跳转到第#行的行首

#,#:从左侧第#行到右侧第#行之间的内容

#,+#:从左侧第#行开始,向下再加上右侧#行之间的内容

.:当前行

$:最后一行

%:全文,相当于1,$

/pat1/,/pat2/:从第一次被pat1模式匹配到的行开始,到第一次被pat2模式匹配到的行之间所有内容

#,/pat1/:从第#行开始,到第一次被pat1模式匹配到的行之间所有内容

/pat1/,$:从第一次配pat1模式匹配到的行开始,到最后一行之间所有内容

内容界定的使用可以在后面跟上编辑命令,如c、d、y、s等,作用是对指定范围的内容进行相关编辑操作,也有些编辑命令需要放在内容界定的前面,如w、r

w /path/to/somefile:将选定范围内的内容保存至指定文件中

r /path/from/somefile:将指定文件中的内容读取到指定位置


(2)查找

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

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

在查找过程中如果多个匹配项,可使用n或N来辅助查找   

n:与命令同方向查找下一个

N:与命令反方向查找下一个

(3)查找并替换

s:在末行模式下完成查找替换操作,使用方法为:

内容界定s/查找模式/要替换成的内容/修饰符

查找模式可用正则表达式表示,要替换的内容不能用模式,但可以引用前面查找模式的内容,如\1,\2等向后引用,还可以使用&,表示引用查找的整个内容,修饰符有一下几种:

i:忽略大小写

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

gc:全局替换,每次替换前询问

查找替换中的分隔符/可以用其他没有在模式中出现过的字符代替,如s@@@gi、s###gj等


7、多文件模式操作(一次打开多个文件)

:next:切换到下一个文件

:prev:切换到前一个文件

:first:切换到第一个文件

:last:切换到最后一个文件

:wqall:保存所有文件并退出

:qall:退出所有文件

:wall:保存所有文件

8、多窗口操作

多个文件:

vim -o file1 file2…:水平分割多个文件

vim -O file1 file2…:垂直分割多个文件

单文件下:

Ctrl+w,s:水平分割单个文件

Ctrl+w,v:垂直分割单个文件

多窗口间的操作:

Ctrl+w,Arrow(上、下、左、右):窗口间切换

Ctrl+w,q:取消相邻窗口

Ctrl+w,o:取消全部窗口

9、窗口属性定义

:set nu:显示行号

:set nonu:取消显示行号

:set ai:启用自动缩进功能

:set noai:取消自动缩进功能

:set ic:忽略字符的大小写

:set noic:不忽略字符的大小写

:set sm:括号匹配

:set nosm:取消括号匹配

;syntax on:语法高亮

:syntax off:取消语法高亮

:set hlsearch:搜索高亮

:set nohlsearch:取消搜索高亮

在末行模式中更改窗口属性只对当前vim进程有效,可通过修改配置文件永久生效,配置文件如下:

全局配置文件:/etc/vimrc

单个用户配置文件:~/.vimrc


10、可视化模式

在命令模式下输入字母v可进入可视化模式,在该模式下可以与移动键结合使用(如w,(,{,$,箭头等),对选定的内容可做删除、复制、过滤、搜索替换等操作。

v:面向字符的可视化视图

V:面向行的可视化视图

Ctrl+v:面向块的可视化视图







原创文章,作者:苦涩咖啡,如若转载,请注明出处:http://www.178linux.com/33004

(0)
苦涩咖啡苦涩咖啡
上一篇 2016-08-12 14:45
下一篇 2016-08-12 14:45

相关推荐

  • 计算机及Linux基础介绍

    Linux及计算机基础介绍 计算机的组成及其功能 What:计算机的组成是什么? 计算机的主要部件: CPU:可分为运算器、控制器、寄存器、缓存等 存储器:比如内存。执行程序时,会将程序及相关数据加载进内存,供CPU读取 输入设备:比如:键盘。用于下达指令及输入数据。 输出设备:比如显示器。用户显示和输出指令执行的结果等 冯诺依曼体系中提出的五大部件为:运算…

    Linux干货 2016-09-19
  • 推荐-​以各种方式实现yum源,简单暴力,绝对实操干货!

    以各种方式实现yum源,简单暴力,绝对实操干货! 科普:yum不是程序包安装工具,而是rpm包前端管理工具,通过yum可以更好的管理rpm的安装卸载 以各种方式实现yum源,简单暴力,绝对实操干货! 一、本地yum源之“挂载光盘镜像实现”! 二、本地yum源之“挂载本地磁盘上的镜像文件”! 三、如能上网,实现自定义指定镜像网站yum源 四、炸天重磅来袭!!!…

    Linux干货 2016-04-11
  • N28-第四周:正则表达式练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-24
  • btrfs文件系统——更加高级的文件系统

    Btrfs 文件系统: Btrfs ( B-tree ,Butter FS ,Better FS ) GPL ,Oracle公司在2007年研发,支持CoW(对文件快照),为了取代ext3,ext4,xfs 核心特点:          多物理卷支持:btrfs可由多个底层物理卷…

    Linux干货 2016-08-31
  • 创建用户、用户组

    创建用户、用户组                  1解释Linux的安全模型   2解释用户帐号和组群帐号的目的   3用户和组管理命令   4理解并设置文件权限 5默认权限 6特殊权限 …

    Linux干货 2016-08-08
  • 2016/10/19作业:软链接与硬链接的区别

    软链接和硬链接的区别 linux中链接分为两种,一种是硬链接(Hard Link),一种是符号链接(Symbolic Link),其中,符号链接又称为软链接。 硬链接: 在Linux文件系统中 ,磁盘中的所有文件都有一个编号,这个编号称为索引节点(Inode)。在Linux中,多个同一索引节点可以有多个文件名,这就是硬链接。硬链…

    Linux干货 2016-10-20