Vim编辑器

来源:互联网 发布:js 构造函数 编辑:程序博客网 时间:2024/06/06 15:51

Vim编辑器是linux系统中最重要的编辑器,与windows下面的记事本有很大差距,在此记录一下使用方法,以便速查。

vim中的各种模式

相传,vim有六种基本模式和五种派生模式。其实我觉得vim总结一下就三种模式:普通模式,插入模式,命令行模式。当然这三种算是最常用的模式,其他的基本上很少用到。

模式切换

在命令行中输入 vim+文件,进入到普通模式(或者直接输入vim进入空白的vim中然后输入e+文件,进入特定的文件中),在普通模式下输入i或者a,进入插入模式,按ESC返回普通模式,普通模式输入:进入命令行模式,输入wq保存并退出vim,或者在普通模式下按shift+zz退出vim。

普通模式下,使用方向键或者hjklwb移动游标。

普通模式下,输入a或者i进入插入模式,还有其它的方式,包括:

  • i,当前光标处进行编辑
  • I,在行首插入
  • A,在行末插入
  • a,在光标后插入
  • o,在当前行后插入一个新行
  • O,在当前行前插入一个新行
  • cw,替换从光标所在位置后到一个单词结尾的字符
普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑,其他的几种方式为

  • q!,强置退出,不保存
  • q,退出
  • wq!,强置保存并退出
  • w <文件路径>,另存为
  • saveas,另存为
  • x,保存并退出
  • wq,保存并退出
进入普通模式,可使用下列命令进行文本快速删除

  • x,删除游标所在的字符
  • X,删除游标所在的前一个字符
  • Delete,同x
  • dd,删除整行
  • dw,删除一个单词(不适合中文)
  • D或者d$,删除至行尾
  • dG,删除到文章结尾处
  • d^,删除至行首
  • d1G删至文档首部
还可以在命令之前加上数字,表示一次删除多行,如:2dd,一次删除2行

vim重复命令

在普通模式下.(小数点)重复上一次的命令,输入N<命令>,N表示重复后面的次数,dw或daw删除一个单词,dnw,删除n个单词
如删除10x,删除10个连续字符,3dd删除3行文本

在普通模式下,nG(n+shift+g)游标移动到第n行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号),gg游标移动到第一行,G(shift+g)到最后一行。Ctrl+o快速回到上一次光标所在的位置。
普通模式下,行内跳转
  • w、到下一个单词的开头
  • e、到下一个单词的结尾
  • b、到前一个单词的开头
  • ge、到前一个单词的结尾
  • 0或^,到行头
  • $,到行尾
  • f<字母>,向后搜索<字母>并跳转到第一个匹配的位置
  • F<字母>,向前搜索<字母>并跳转到第一个匹配的位置
  • t<字母>,向后搜索<字母>并跳转到第一个匹配位置之前的一个字母
  • T<字母>,向前搜索<字母>并跳转到第一个匹配位置之后的一个字母
  • ~,将目前的字母变成大写

复制粘贴剪切命令

普通模式下使用y复制
  • yy、复制游标所在的整行(3yy表示复制3行)
  • y^或y0,复制至行首,不包含光标所处字符
  • y$,复制至行尾,含光标所处的字符
  • yw,复制一个单词
  • ynw,复制n个单词
  • yG,复制至文本末
  • y1G复制至本文开头
普通模式中使用p粘贴
  • p(小写)、粘贴至光标后
  • P(大写)、粘贴至光标前
剪切和粘贴
dd删除命令就是剪切命令,每次使用dd删除文档内容后,变可以使用p来粘贴。
ddp交换上下行。

字符的替换及撤销(Undo操作)

替换和Undo命令都是针对普通模式下的操作
  • r+<待替换字母>、将游标所在的字母替换为指定的字母
  • R、连续替换,知道按下ESC
  • cc、替换整行,及删除游标所在行,并进入插入模式
  • cw、替换一个单词,即删除第一个单词,并进入插入模式
  • C(大写)、替换游标一部至行末
  • ~、反转游标所在字母的大小写
  • u{n}、撤销一次或n次操作
  • U(大写)、撤销当前行的所有修改
  • Ctrl+r、redo,即撤销undo的操作

快速缩进

使用快速缩进都是在普通模式下
  • nG,跳转到第n行
  • >>,整行向右缩进
  • <<,整行向左回退
使用shiftwidth可以改变缩进的距离,在普通模式下,输入:,进入命令行模式,输入shiftwidth?获取目前的设定值,shiftwidth=10,设定缩进为10个字符
调整文本位置
  • :ce,使本行内容居中
  • :ri,使本行内容居右
  • :le,使本行内容居左

查找

在普通模式下输入/然后输入需要查找的字符串,按回车后就会及进行查找。?和/功能相同,只不过?是向上而/是向下查找。进入查找后,输入n和N可以继续查找(n表示继续查找,N反向查找)。
在普通模式下,可以进行高级查找
  • \*,寻找游标所在处的单词
  • \#,与\*相同,但是\#是向上找,\*是向后找
  • g\*,同\*,但部分符合该单词即可
  • g\#,同\#,但部分符合该单词即可

多文件编辑

编辑多个文件有两种形式,一种是在进入vim前使用多个文件,另一种是进入vim后在编辑其他文件
vim 1.txt 2.txt
默认进入1.txt文件的编辑界面
普通模式下输入:n编辑2.txt文件。如果1.txt插入了内容,必须进入2.txt中,可以使用:n!进行强制切换,但是1.txt内容不进行保存。
普通模式下输入:N编辑前一个文件的内容,可以使用:N!强制切换(不保存)。
进入vim后打开新的文件
  • :e 3.txt,打开新的文件3.txt
  • :e#,回到前一个文件
  • :ls,可以列出以前编辑过的文档
  • :b 2.txt,可以直接进入文件2.txt进行编辑
  • :bd 2.txt,可以删除以前编辑过的列表中的文件项目
  • :e! 4.txt,新打开4.txt,并且放弃正在编辑的文件
  • :f,显示正在编辑的文件名
  • :f new.txt,改变正在编辑的文件名字为new.txt
如果因为不可抗力造成文档没有保存,可以采用恢复方式,vim -r进入文档后,输入ewcover1.txt进行恢复。(没试过)

可视化操作

普通模式下输入v(小写)进入字符选择模式,移动光标,光标走过的地方就会被选取,再次按下v取消选择。shift+v进入行选择模式,,上下移动光标选择更多的行,再次输入shift+v取消选择。输入Ctrl+v,进入区域选择模式(类似于word中按住alt进行选择),再次输入取消选择
在可视模式下输入d删除选择区域内容,y复制选取内容。

vim中可以在一个界面内打开多个窗口进行编辑。比如在编辑1.txt时,可以在普通模式下输入,:new新建一个新的vim窗口(默认为上下排列)。当然也可以使用以下几种方式。
  • :sp 1.txt,打开新的水平分屏视窗来编辑1.txt
  • :vsp 1.txt,打开新的垂直分屏来编辑1.txt
  • Ctrl+w s,将当前窗口分割成两个水平的窗口
  • Ctrl+w v,将当前窗口分割成两个垂直的窗口
  • Ctrl+w q,结束分割出来的视窗,如果新视窗有输入需要使用:q!
  • Ctrl+w o,打开一个视窗并隐藏之前所有的视窗
  • Ctrl+w j(k、l、h),移至下(上、右、左)面的视窗
  • Ctrl+w J(K、I、H),将当前视窗移至下(上、右、左)面
  • Ctrl+w -(+),减小(增加)视窗的高度

文档加密

vim可以使用如下语句进行文档jiami
vim -x file1
输入密码,确认密码,在下一次打开是就会要求输入密码

在Vim执行外部命令

在命令行模式下输入!可以执行外部的shell命令。:!ls,显示但钱目录的内容。!rm filename,删除文件,:w filename 将当前vim中正在编辑的文件俺另存为filename


原创粉丝点击