A. Vi/Vim 使用小窍门,如何消除搜索后的关键字高亮
输入:”:noh“。
使用技巧
1、使用 h、j、k、l
当命令模式时,可以用 h、j、k、l 来分别实现左、下、上、右箭头的功能。
2、快捷指令
(1)[Ctrl] + [b] 屏幕‘向上’移动一页,相当于 [Page Up] 按键。
(2)[Ctrl] + [d] 屏幕‘向下’移动半页。
(3)[Ctrl] + [u] 屏幕‘向上’移动半页。
(4)/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可。
(1)vim实用技巧pdf扩展阅读
简介
vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。
同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化。
发展历程
Bram Moolenaar 在 80 年代末购入他的Amiga计算机时,Amiga 上没有他最常用的编辑器vi。Bram 从一个开源的 vi 复制 Stevie 开始,开发了 Vim 的 1.0 版本。最初的目标只是完全复制 vi 的功能,那个时候的 Vim 是Vi IMitation(模拟)的简称。
1991 年 Vim 1.14 版被 "Fred Fish Disk #591" ——Amiga 用的免费软体集收录了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-DOS上。从那个时候开始,Vim 的全名就变成 Vi IMproved了。
B. vim编辑器的使用以及常用快捷键
一般模式英文键盘模式下输入i进入编辑模式;
编辑模式下按下esc回到一般模式;
一般模式下输入:或者/进入命令模式
命令模式下按下esc或者按下enter键命令执行完成后也会回到一般模式
进入vim编辑器: vim 文件名.后缀
退出vim编辑器:
1. :q 退出,如有修改会被提示已修改文件内容
2. :q! 强制退出,不保留修改内容
3. :wq 保存修改内容并推出
C. vim模式与模式切换vim命令模式
vim有三种模式,本文介绍VIM模式与vim模式切换的方法。
vim命令 模式, 编辑模式 , 尾行模式 和文本编辑命令。
Vim编辑模式插入字符,行尾、行首插入,删除一个字符和删除整行命令,Vim复制和粘贴命令,vim替换输入以及撤销和反撤销命令,Vim保存和另存为文件,显示vim当前编辑文件名。
我们使用vim编辑器的常用文件操作主要是:插入、删除、复制、粘贴、替换、撤销、保存、另存为。
在介绍Vim中的上述基本文件操作命令前,需要先介绍下vim的操作模式。因为vim的各种对文件操作命令需要在不同操作模式下使用。
一、Vim三种操作模式
Vim编辑器一共有3种模式,分别为 命令模式 (默认)、编辑模式、尾行模式。这3种模式的转换关系如下图所示。
vim三种模式
1 命令模式(command mode)
命令模式是Vim的默认操作模式,当使用vim命令打开一个文件时,默认进入的就是命令模式。不管用户处于何种模式,只要按下Esc键就可使进入命令行模式
2 编辑模式(input mode)
只有在vim编辑模式下,才能将键盘键入的内容输入到当前打开的文件中
在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本编辑模式
3 尾行模式(last line mode)
尾行模式主要用于保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号(set nu)、寻找字符串(/target)等
在命令模式下,用户按冒号键(:)即可进入末行模式下,此时Vi会在显示窗口的最后一行显示一个”:“作为末行模式的提示符,等待用户输入命令
二、Vim文本编辑命令
约定:在没有特殊说明的情况下,以下Vim编辑命令部分提到的命令均是在命令模式下使用。
1 vim插入命令
在命令模式下按以下按键可进入编辑模式,执行插入操作,具体包括:
从光标当前所在行的【行首】处开始插入:I
从光标当前所在行的【行尾】处开始插入:A
从光标当前所在行的【下一行】处开始插入:o
从光标当前所在行的【上一行】处开始插入:O
从光标当前所在位置的【前】一个字符处开始插入:i
从光标当前所在位置的【后】一个字符处开始插入:a
tips:i (insert)是在当前位置插入,a (append)表示是在后面追加
2 vim删除命令
在命令模式下按以下按键可执行删除操作,具体包括:
删除从光标所在位置到当前【单词结束】部分的内容并进入插入模式:cw、cW
删除从光标所在位置到当前【单词开始】部分的内容并进入插入模式:cb、cB
删除从光标所在位置到当前【单词结束】部分的内容但不进入插入模式:dw、dW
删除从光标所在位置到当前【单词开始】部分的内容但不进入插入模式:db、dB
删除光标位置的【一个】字符:x
删除当前光标所在【行】:dd
删除从光标所在位置到当前【行首】的内容:d0
删除从光标所在位置到当前【行尾】的内容:d$
tips:
(1) Vim的命令中,0 表示行首,$ 表示行尾,更多内容可参考卡拉图Vim操作范围、文件范围介绍
(2) w(word)、b(back)命令用于光标移动,具体可参考卡拉图:vim光标移动命令汇总
(3) cW、cB、dW、dB 命令操作的单词是以空白字符(空格、Tab)分隔的字符串
删除当前【段落】从光标位置开始到【段末】的内容:d}
删除当前【段落】从光标位置开始到【段首】的内容:d{
删除当前【句子】从光标位置开始到【句末】的内容:d)
删除当前【句子】从光标位置开始到【句首】的内容:d(
tips:Vim命令中用 ( 和 ) 表示句子,{ 和 } 表示段落
3 vim复制命令、vim粘贴命令
在命令模式下按以下按键可执行复制、粘贴操作,具体包括:
将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【后】:p
将最后一个删除或复制操作的文本内容粘贴到光标当前字符之【前】:P
复制从光标所在位置到当前【单词结束】部分的内容:yw
复制光标所在【行】的所有字符 (包含换行符):yy
tips:yyp 操作可以实现复制一整行内容到当前所在行的下一行
4 vim替换命令
在命令模式下按以下按键后,再输入字符可替换原始文件中的内容
一直替换光标所在字符,直到按下[ESC]键为止:R
删除、复制操作的操作单位可以加操作次数,操作对象的范围为:操作次数 * 操作单位
替换光标当前所在字符一次:r
例如:d3w命令表示删除三个单词,10dd命令表示从光标所在行开始删除后面的十行,更多内容可以参考Vim中的操作符和动作命令。
5 vim撤销命令、vim回退反撤销命令
在命令模式下可执行撤销操作
撤销最近的一次操作:u
恢复最近的一次操作(取消撤销):<Ctrl> + r
tips:多次执行u 命令可以连续撤销最近的操作
6 vim保存命令
在尾行模式下执行以下命令可保存当前编辑的文件内容
保存当前编辑的文件::w
保存当前编辑的文件并退出vim::wq
强制将当前编辑的文件保存::w!
tips:上述操作是在尾行模式下执行的,所以命令都是以:开头
7 vim另存为命令
在尾行模式下执行命令 :w a.txt 可将vim当前打开的文件另存为新文件a.txt.
tips:w(write) 表示将文件存档,: 表示尾行模式命令。
8 vim显示当前文件名的方法
命令 <Ctrl> + g 可显示当前编辑文件名及行数,可以在不退出 Vim 的情况下了解当前编辑文件的信息,更多内容,可参考30个vim常用命令和使用 vim技巧 。
Vim入门级文件编辑命令汇总就先介绍到这里了,更多Vim文件编辑命令和Vim相关操作可阅读本站其它文章内容。
D. vim操作技巧
不知不觉使用vim已经有一些时间了,也算得上真正掌握使用技巧了吧。想不起来当初为什么去学习这个编辑器,也不记得怎么学会使用编辑文件,只记得当初按完所有的键盘按键都没有退出vim。一颗种子要经过多少风雨才能长成参天大树,一条小溪要经过多少高山河流才能汇入大海。我们平常学习一样东西,要经过多少困难,多少挫折,只有自己最清楚。
普通编辑器都可以直接打开文件进行编辑、保存、使用快捷键等等,vim也具备这些功能,但是有些功能要在特定模式下才能使用。也是因为这些模式,让vim学习路线变得特别比较陡峭。vim具有多种模式,每种模式都有特定功能,有时你需要某些功能时,特意切换到指定模式下操作。使用键盘就可以随意切换模式,让vim不依赖鼠标操作,使用最小化组合键的操作,编辑效率大大提高。
这个模式主要功能,可以使用移动命令,扩大高亮的文本区域。输入命令将直接作用于选中文本区域。这就相当于你用鼠标选中一段文本区域,可以使用可以使用命令进行,复制、剪切、修改操作,但是vim并不需要鼠标。
这个模式要在可视模式下才能进入,可以直接使用退格键或者空格键删除选中文本区域,或者直接输入新的文本,替换选中高亮区域进入插入模式。
平常在使用vim主要是在普通模式、插入模式、可视模式、命令模式进行操作,掌握这里基本就可以熟悉使用vim了。
掌握这些快捷键,移动光标得时候,手机基本不会离开核心键盘区,有没有像 w , a , s , d 移动角色的感觉🙂。
要想编写文本内容,还必须在插入模式下进行操作,以下命令由普通模式进入到插入模式
d 删除字符(delete), d 本身没有任何涵义,但是它可以跟其他命令组合,完成一些快速操作。
<font size=5>操作符 + 动作命令 = 操作</font>
d<span style="color:red;">{motion}</span> 命令可以对一个字符 dl 、一个完整单词 daw 或
一整个段落 dap 进行操作,它作用的范围由动作命令决
定。c<span style="color:red;">{motion}</span>、y<span style="color:red;">{motion}</span> 以及其他一些命令也类似,它们被统称为操作符(operator)。
<center>Vim的操作符命令</center>
看着上面删除操作,是不是很容易理解操作符 + 动作命令 的模式,比如我们已经知道 daw 删除整个单词, gU 反转大写,我们就可以使用 gUaw 反转整个单词, gUap 反转整个段落大写
由于vim中快捷键已经被change修改占用了,只能使用 y 代表复制(yank),粘贴(put)使用 p , d 其实是将内容剪切到寄存器中,剪切实现删除操作。 ddp 看起来是将两行位置互换,其实先剪切当前行到寄存器中, p 粘贴到光标下的位置。主要记住使用命令 y + 动作指令 或者 d + 动作指令,都是将文本暂存到寄存器中,使用 p 或者 P 进行粘贴。进行一个小demo练习,将变量field替换下面的函数参数foo。
思路: 先使用 yw 复制field字段,下移动foo中, dw 删除foo, P 粘贴。但是你会发现粘贴结构居然还是foo。这是因为 dw 将删除文本放入寄存器中,覆盖了上面的变量。我们平常复制,剪切的文本都会暂存再无名寄存器中。
在vim中的删除、复制、粘贴都是使用寄存器,可以使用 "{registerName} 方式命名寄存器。平时我们使用 dd , yy 命令,不指名寄存器名称默认使用无名寄存器。倘若没有指定要使用的寄存器,Vim将缺省使用无名寄存器,它可以用双引号表示(参见 :h quote_quote )。无名寄存器可以使用 "" 表示,比如 ""yy 相当于 yy , ""p 相当于 p
"[0-9]表示数字寄存器,数字越小表示最早在寄存器内容。例如 "0 表示第一个进入寄存器文本, "1 表示第二个进入寄存器内容,类似值栈结构,先进后出排列。可以使用 :reg 查看寄存器中内容。
在win系统中,可以在任意地方Ctrl c复制文本,vim是否可以粘贴非vim中复制内容?当然是可以的。 "+ 表示系统寄存器,可以读取系统vim之外的系统粘贴板中的内容,可以粘贴内容,复制到系统粘贴板中去。ubuntu上需要安装vim-gnome,才可以正常使用系统寄存器。
使用粘贴命令前面+寄存器名称,就可以直接使用专用寄存器中的内容了,例如 "+p 直接粘贴系统剪贴板中的内容。
在插入模式使用 <Ctrl r> + 寄存器名称粘贴字符文本。例如可以使用 <Ctrl r>" 粘贴无名寄存器中内容。
本文章有部分内容参考 《vim实用技巧第2版》 ,有兴趣的同学可以买一个本来看看,真的很不错哦!
E. Vim实践技巧二:为指定的行末尾批量修改
有一个PHP文件,由于某些原因,每行的最后分号结束符丢失,我们期望将其批量补全。
原数据:
期望数据:
这里涉及两个问题:
1、只要2-4行需要在末尾添加分号
2、每个行的字符串长度均不一致
解决思路:
1、方式一:通过视图模式将需要修改的块进行选中然后批量修改
2、方式二:通过命令行模式追回
步骤:
1、光标在第二起始,按下 ctrl+v 进入视图模式的块选择
2、按下 jj$ ,把需要的块进行选择
3、按下 A ,进入修改状态,输入 ;
4、按下Esc退出,完成
释义:
1、 ctrl+v 是进入块选择模式
2、 jj 向下选择两行, $ 执行到末尾
3、A进行修改模式,输入自己的需要的内容
4、一定需要按 Esc 退出,完成整个块的修改
在命令模式下,输入:
释义:
1、:normal 可在命令行命令下切换到普通模式
2、在普通模式下,执行 A; 指令,可以在行尾添加一个 ;
F. Vim实践技巧一:为每行数据前面添加行号
最近在写Thrift文件时,从其他地方拷贝过来的数据,没能带上行号,这样子得手工一行行添加行号,比较费时费力。
原数据:
期望数据:
这里涉及两个问题:
1、只要2-4行需要自动添加行号
2、需要在Vim编辑器上执行
解决思路:
1、在Vim命令模式下指定行数
2、通过外部命令Awk可以自动生成行数
在vim的命令行模式输入:
就可以实现上述目的
释义:
1、指定行数:2,4
只要2-4行
2、执行外部命令:!awk '{print " "NR":" 2}'
!awk:执行外部命令awk
NR:行数。这里是NR行数与Vim行数不一样,而是我们输入的指定内容行行数,即2-4行内容
G. 怎么用VIM阅读PDF文件
VIM是文本编辑器,不支持阅读PDF文件。
要阅读PDF文件请用Adobe Acrobat XI Pro或Adobe Reader XI 软件。