gvim 常用指令
GVIM_使用
在insert模式下,C-R (register) 插入register里的内容,一个有趣的reg是"=".假设你想输入123K的具体字节数,不用打开计算器,试试这个“=1024*123”,“125952”就出来了!另外在命令行里C-R C-W和C-R C-A是必用的技巧,它们将光标下的和考到命令行里,省了你无数的typing。
3. C-X (auto complete)在insert模式下,C-X C-P/N/L/F等自动完成前面的词、行、文件名等,是编程时必用的命令。
其中C-P和C-N可以不用C-X。
4. [p & ]p (smart paste)paste同时自动根据目标行的缩进调整来源行的缩进。
在copy代码段的时候非常有用。
5. C-O (fast out, fast in)在insert模式下,用C-O后可以执行一个normal命令,然后立即返回insert模式,省去了用ESC的麻烦。
6. [I (fast grep )[I显示文件中包含光标下的所有行。
我常用来浏览某个id在程序中的引用情况。
还有很多相关的命令::h include-search7. object-selectiw, aw, ib, i], i} ... 都非常有用!看help吧:h object-select先写这么多,以后再补充吧。
例如你想把所有的"..."形式的串替换成'...'的形式但引号里的内容不变你就可以用%s/"\(.*\)"/'\1'/来做上面这个正则表达式"\(.*\)"里\用来表示()是元字符第一个在括号里的被匹配的串就可以被\1来代表, 以后依次是\2 \3。
顺便说一句,我到现在还不知道怎么限制vim里正则表达匹配的贪婪算法。
------------------------------------里面说的非贪婪匹配是\{-},也就是%s/"\(.\{-}\)"/'\1'/g\ 太多了可以用\v,%s/\v"(.{-})"/'\1'/g详细:h /\{-:h \v另外和perl 正则表达式的区别在:h perl-patterns把 替换为~字符~~~~~数字和点我用s/\(^.*)\(\.\d*.\)com/\/结果为请问有没有好点儿的办法?谢谢☆─────────────────────────────────────☆alphatan ( C ) 于(Tue Aug 10 09:27:19 2004) 提到:【在qiaolin (风儿) 的大作中提到: 】: 把 替换为: ~字符~~~~~数字和点: 我用s/\(^.*)\(\.\d*.\)com/\/1. \(^.*\) 一下子把整个字符串吞进去了. \1 = 2. 遇到com把com从\1中吐出来. \1 = aaaaa.20300.2000.3. 遇到.把com前面的\.吐出来\1 = aaaaa.20300.20004. 遇到\d*, 再把随后的2000吐出来\1 = aaaaa.20300.5. 遇到\., 把.也呕出来了. \1 = aaaaa.20300所以, 得到你要的结果.可以用\{-}进行非贪婪匹配.但为什么不直接把数字跟它们的点去掉呢?s/[0-9.]\ //g: 结果为: 请问有没有好点儿的办法?谢谢☆─────────────────────────────────────☆qiaolin (风儿) 于(Tue Aug 10 09:36:27 2004) 提到:谢谢大侠,有问题请教:贪婪匹配的顺序是怎样的呢?在这个例子中,先匹配第一个pattern,再从最后面的pattern一个一个“吐”出来?【在alphatan ( C ) 的大作中提到: 】: 1. \(^.*\) 一下子把整个字符串吞进去了. \1 = : 2. 遇到com把com从\1中吐出来. \1 = aaaaa.20300.2000.: 3. 遇到.把com前面的\.吐出来\1 = aaaaa.20300.2000: 4. 遇到\d*, 再把随后的2000吐出来\1 = aaaaa.20300.: 5. 遇到\., 把.也呕出来了. \1 = aaaaa.20300: 所以, 得到你要的结果.: 可以用\{-}进行非贪婪匹配.: 但为什么不直接把数字跟它们的点去掉呢?: s/[0-9.]\ //g这里没有这样用是因为aaaaa也可能是a123a,可不可以用/w呢?在查找、替换命令使用以下正则表达式元字符,功能强大。
gvim 正则表达式 换行
gvim 正则表达式换行
在gvim中,正则表达式可以用来进行文本搜索和替换操作,包
括匹配换行符。
换行符在正则表达式中通常用"\n"表示。
在gvim中,你可以使用正则表达式来匹配换行符,并进行相应的操作。
要在gvim中使用正则表达式匹配换行符,你可以使用以下几种
方式:
1. 匹配换行符,在正则表达式中使用"\n"表示换行符。
例如,
如果你想要匹配包含特定内容的多行文本,可以使用类似
"pattern\npattern"的表达式来匹配包含换行符的文本。
2. 替换换行符,在gvim中,你可以使用正则表达式来替换换
行符。
例如,如果你想要将文本中的换行符替换为其他字符,可以
使用类似":%s/\n/replace/g"的命令来实现。
3. 匹配多行文本,使用正则表达式可以方便地匹配多行文本。
在gvim中,你可以使用"\_."来匹配包括换行符在内的任意字符,
使用"\_s"来匹配空白字符(包括换行符),以及使用"\_m"来进行
多行匹配。
总之,在gvim中,正则表达式可以灵活地用于匹配和处理包括换行符在内的文本内容。
通过合理运用正则表达式,你可以实现各种复杂的文本操作,包括换行符的处理。
希望这些信息能够帮助到你。
gvim正则表达式查找字符串
gvim正则表达式查找字符串正则表达式在文本编辑器中的应用非常广泛,尤其是在使用gvim时,它提供了强大的正则表达式功能,可以帮助我们高效地查找和替换文本。
在gvim中,我们可以使用正则表达式来查找特定格式的字符串,例如标题。
标题通常是文章或文档中的重要部分,它们通常以大写字母开头,使用中文或英文描述文章的主题。
使用正则表达式查找标题时,我们可以使用一些常用的元字符和限定符来匹配特定的模式。
下面是一些常用的正则表达式元字符和限定符的示例:1. 字符类:使用方括号[]来定义一个字符类,可以指定字符的范围或集合。
例如,[A-Z]表示大写字母,[0-9]表示数字。
2. 量词:使用限定符来指定匹配字符的数量。
例如,*表示匹配0个或多个字符,+表示匹配1个或多个字符,?表示匹配0个或1个字符。
3. 边界:使用边界匹配符来指定匹配的位置。
例如,^表示匹配字符串的开头,$表示匹配字符串的结尾。
4. 分组:使用小括号()来将一组字符组合在一起,并且可以对这个组合进行限定或引用。
使用这些元字符和限定符的组合,我们可以构建复杂的正则表达式来匹配不同格式的标题。
在使用gvim正则表达式查找字符串为标题时,我们可以按照以下步骤进行操作:1. 打开gvim编辑器,并打开需要查找标题的文本文件。
2. 进入正则表达式查找模式,按下"/"键进入查找模式。
3. 输入正则表达式来匹配标题的模式。
4. 按下回车键开始查找。
5. gvim会高亮显示匹配到的标题字符串,我们可以按下"N"键来查找下一个匹配项。
在使用正则表达式查找标题时,我们需要注意一些细节,以确保我们的查找结果符合要求:1. 不要输出http地址:在正则表达式中,我们可以使用负向预查来排除匹配特定模式的字符串。
例如,使用"(?!http://)"来排除包含"http://"的字符串。
2. 不要输出公式:公式通常包含特定的字符或符号,我们可以使用负向字符类来排除这些字符。
GVIM用法
gvim 设置VIM 中可供用户定制的选项非常非常多,作为初学者,我们没有必要了解这么多东西。
下面,滇狐简单列出了一些最常用的配置项,大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。
1 基本设置set nocp该命令指定让VIM 工作在不兼容模式下。
在VIM 之前,出现过一个非常流行的编辑器叫vi。
VIM 许多操作与vi 很相似,但也有许多操作与vi 是不一样的。
如果使用”:set cp”命令打开了兼容模式开关的话,VIM 将尽可能地模仿vi 的操作模式。
也许有许多人喜欢”最正统的vi”的操作模式,对于初学者来说,vi 里许多操作是比较不方便的。
举一个例子,VIM 里允许在Insert 模式下使用方向键移动光标,而vi 里在Insert 模式下是不能移动光标的,必须使用ESC 退回到Normal 模式下才行。
再举一个例子,vi 里使用u 命令可以撤消一次先前的操作,再次按下u 时,将撤消”撤消”这个动作本身,也就是我们常说的”重复”(redo)。
而VIM 里可以使用u 命令撤消多步操作,“重复”使用的快捷键是Ctrl + R。
使用兼容模式后,VIM 将放弃这些新的功能,尽量模仿vi 的各种操作方式。
只有在不兼容模式下,才能更好地发挥VIM 自身的特点。
Bram 爷爷强烈推荐大家使用VIM 的不兼容模式,滇狐也是这样推荐的。
请务必在你的 .vimrc 中的第一行写上:“set nocp”。
set ru该命令打开VIM 的状态栏标尺。
默认情况下,VIM 的状态栏标尺在屏幕底部,它能即时显示当前光标所在位置在文件中的行号、列号,以及对应的整个文件的百分比。
打开标尺可以给文件的编辑工作带来一定方便。
set hls搜索时高亮显示被找到的文本。
该指令的功能在vimtutor 中已经有过介绍,这里就不多说了。
其实似乎许多人并不喜欢这个功能。
set is搜索时在未完全输入完毕要检索的文本时就开始检索。
Gvim 简介及常用命令
vi/vim 的使用
vi/vim 共分为三种模式,分别为命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
命令模式:
用户刚刚启动vi/vim,默认进入命令模式。
命令模式下敲击键盘动作会被Vim识别为命令,而非输入字符。
比如此时按下i键,不会输入一个字符,i被当作了一个命令。
以下是命令模式常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底部一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线ESC,退出输入模式,切换到命令模式
底线命令模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
gvim的tag用法
gvim的tag用法
在gvim中,tag主要用于快速导航和定位代码。
要使用tag功能,首先需要生成tags文件,可以通过在命令行中使用ctags命令来生成。
生成tags文件后,可以在gvim中使用tag命令来实现代码跳转。
在gvim中,要跳转到tag定义的位置,可以按下Ctrl+],这将会跳转到光标所在单词的定义处。
如果想要返回到上一个位置,可以按下Ctrl+t。
此外,还可以使用:tag命令来手动跳转到指定的tag定义。
例如,可以输入:tag tagname来跳转到名为tagname的tag定义处。
另外,gvim还提供了一些tag相关的命令,例如:ts(显示tag 列表)、:tn(跳转到下一个tag)、:tp(跳转到上一个tag)等,这些命令可以帮助用户更高效地使用tag功能进行代码导航。
总的来说,gvim的tag功能可以帮助开发者快速定位和导航代码,提高代码阅读和编辑的效率。
希望这些信息能够帮助到你理解gvim的tag用法。
Linux 中 V(Vim)常用命令使用说明
Linux 中V(Vim)常用命令使用说明在linux发行版中vi 命令已经软链接到了vim一、vi的三种工作模式:命令模式、末行模式、编辑模式1. 末行模式命令w:(write)保存q:(quit)退出,如果没有保存不允许退出q!:(quit)强行退出,不保存退出wq:(write&quit)保存并退出x:保存并退出:e:(edit)会打开内置浏览器浏览当前目录下的文件,后面加文件名就会打开该文件:n文件名:(new)新建文件:w文件名:(write)另存为,但是仍然编辑当前文件,并不会切换文件二、打开或新建文件说明:打开一个文件,文件不存在则新建一个文件命令:vi 文件名1. 打开文件并且定位行说明:打开一个文件并且定位到指定行数,不指定行数则定位到文件末尾命令:vi 文件名+行数三、常用命令(命令模式下使用)1. 重复次数在命令模式下,先输入一个数字再跟上一个命令,可以让该命令重复执行指定次数。
2. 移动和选择2.1 移动行间移动命令:行内移动命令:行数移动命令:屏幕移动命令:段落移动命令:vi中用空行来区分段落,在程序开发过程中,通常一段功能相关的代码会放到一起(一个段落)。
括号切换命令:标记命令:2.2 选择(可视模式)可视模式下,esc可退出可视模式,还可和移动命令连用,例如ggVG能够选中所有内容。
3. 编辑操作3.1撤销和恢复撤销3.2 删除文本如果使用可视模式已经选中了一段字符,那么使用d或者x都可以删除选中字符。
删除命令可以和移动命令连用,例如3.3 复制粘贴复制粘贴是在一个文本缓冲区,没有使用系统的剪切板,所有用其他软件ctrl + c/x 复制剪切到系统的剪切板,再到vi中p粘贴是不能粘贴系统剪切板的内容的。
如果想将系统剪切板的内容粘贴到vi中,需要进入编辑模式使用ctrl + v才能将内容粘贴。
vi中的删除操作本质上就是剪切,只是没有使用p粘贴。
4. 撤销和重复4.1 缩排和重复5. 查找和替换5.1替换R命令可进入替换模式,替换完后esc退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。
Gvim快捷键
Gvim快捷键1 vim#在命令⾏中输⼊vim,进⼊vim编辑器2 i#按⼀下i键,下端显⽰ --INSERT--#插⼊命令,在vim中可能任意字符都有作⽤3 Esc#退出i(插⼊)命令进⾏其它命令使⽤4 :r filename#读⼊⼀个⽂件内容,并写⼊到当前编辑器中5 :w newfilename#将该编辑器中的内容写⼊到⼀个新⽂件中6 :w#在编辑的过程中保存⽂件,相当于word中的ctrl+s7 :! command暂时离开 vi 到指令列模式下执⾏ command 的显⽰结果!例如:!ls#在编辑过程中执⾏shell命令ls8 :sh#进⼊shell命令⾏,执⾏完命令后ctrl+d退出重新进⼊vim编辑继续编辑在shell命令下,执⾏ctral+l完成清屏9 :wq#保存⽂件并退出10 ZZ#保存⽂件并退出,同上⼀个命令,注意⼤写11 :q!#强制退出,不保存12 :set number或者:set nu#使编辑中的⽂件显⽰⾏号13 :set nonumber或者:set nonu#与上⼀条命令相反,不显⽰⾏号14 :help i#查看插⼊命令帮助15 u#撤消上⼀步操作16 /Fedora#查找Fedora字符17 :s /Fedora/Redhat#将Fedora字符替换为Redhat(只替换在光标所在的⾏)18 dw#删除单词dd#删除⾏19 o#打开空⽩⼀⾏20 vim + filename#进⾏⽂件最后⼀⾏进⾏编辑21 vim +n filename#进⼊⽂件第n⾏进⾏编辑22 :1, s/redhat/fedora# 号表⽰当前⾏,即光标所在⾏#将第1⾏到当前⾏( )第⼀次出现的redhat字符代替为fedora23 :1, s/redhat/fedora/g#将第1⾏到当前⾏( )所有出现的redhat字符代替为fedora,g全局标志24 :1,$s/redhat/fedora/g#$表⽰最后⼀⾏#将第1⾏到最后⼀⾏所有出现的redhat字符代替为fedora25 :%s/redhat/fedora/g#同上⼀个命令26 :%s/\/fedora/g#将第1⾏到最后⼀⾏所有出现的redhat字代替为fedora#字,⽽不是字符27 :f#显⽰⽂件内容,状态等等#同ctrl+g命令28 :e!#当前⽂件,返回到上次保存:e file#切换编辑⽂件29 :n#当编辑时有多个⽂件(⽐如vim file1 file2)时切换到下⼀个⽂件,与:e file 结合使⽤VIM命令⼤全光标控制命令命令光标移动h 向左移⼀个字符j 向下移⼀⾏k 向上移⼀⾏l 向右移⼀个字符G 移到⽂件的最后⼀⾏w 移到下⼀个字的开头W 移到下⼀个字的开头,忽略标点符号b 移到前⼀个字的开头B 移到前⼀个字的开头,忽略标点符号L 移到屏幕的最后⼀⾏M 移到屏幕的中间⼀⾏H 移到屏幕的第⼀⾏e 移到下⼀个字的结尾E 移到下⼀个字的结尾,忽略标点符号( 移到句⼦的开头) 移到句⼦的结尾{ 移到段落的开头} 移到下⼀个段落的开头0(数字), | 移到当前⾏的第⼀列^ 移到当前⾏的第⼀个⾮空字符$ 移到当前⾏的最后⼀个字符+, Enter 移到下⼀⾏的第⼀个字符- 移到前⼀⾏的第⼀个⾮空字符在 vi 中添加⽂本命令插⼊动作a 在光标后插⼊⽂本A 在当前⾏插⼊⽂本i 在光标前插⼊⽂本I 在当前⾏前插⼊⽂本o 在当前⾏的下边插⼊新⾏O 在当前⾏的上边插⼊新⾏s 删除光标所在处字符,并进⼊插⼊模式S 删除光标所在的⾏,并进⼊插⼊模式:r file 读⼊⽂件 file 内容,并插在当前⾏后:nr file 读⼊⽂件 file 内容,并插在第 n ⾏后Esc 回到命令模式^v char 插⼊时忽略 char 的指定意义,这是为了插⼊特殊字符在 vi 中删除⽂本命令删除操作x 删除光标处的字符dw 删⾄下⼀个字的开头dG 删除⾏,直到⽂件结束dd 删除整⾏db 删除光标前⾯的字:n,md 从第 m ⾏开始往前删除 n ⾏d, d$ 从光标处删除到⾏尾^h, backspace 插⼊时,删除前⾯的字符^w 插⼊时,删除前⾯的字修改 vi ⽂本每个命令前⾯的数字表⽰该命令重复的次数命令替换操作rchar ⽤ char 替换当前字符R text escape ⽤ text 替换当前字符直到按下 Esc 键stext escape ⽤ text 代替当前字符S 或 cctext escape ⽤ text 代替整⾏cwtext escape 将当前字改为 textCtext escape 将当前⾏余下的改为 textcG escape 修改⾄⽂件的末尾ccursor_cmd text escape 从当前位置处到光标命令位置处都改为 text 在 vi 中查找与替换命令查找与替换操作/text 在⽂件中向前查找 texttext 在⽂件中向后查找 textn 在同⼀⽅向重复查找N 在相反⽅向重复查找ftext 在当前⾏向前查找 textFtext 在当前⾏向后查找 textttext 在当前⾏向前查找 text,并将光标定位在 text 的第⼀个字符Ttext 在当前⾏向后查找 text,并将光标定位在 text 的第⼀个字符:set ic 查找时忽略⼤⼩写:set noic 查找时对⼤⼩写敏感:ranges/pat1/pat2/g ⽤ newtext 替换 oldtext:m,ns/oldtext/newtext 在 m ⾏通过 n,⽤ newtext 替换 oldtext& 重复最后的 :s 命令:g/text1/s/text2/text3 查找包含 text1 的⾏,⽤ text3 替换 text2:g/text/command 在所有包含 text 的⾏运⾏ command 所表⽰的命令:v/text/command 在所有不包含 text 的⾏运⾏ command 所表⽰的命令在 vi 中复制⽂本命令复制操作yy 将当前⾏的内容放⼊临时缓冲区nyy 将 n ⾏的内容放⼊临时缓冲区p 将临时缓冲区中的⽂本放⼊光标后P 将临时缓冲区中的⽂本放⼊光标前"(a-z)nyy 复制 n ⾏放⼊名字为圆括号内的可命名缓冲区,省略 n 表⽰当前⾏"(a-z)ndd 删除 n ⾏放⼊名字为圆括号内的可命名缓冲区,省略 n 表⽰当前⾏"(a-z)p 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏后"(a-z)P 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏前在 vi 中撤消与重复命令撤消操作u 撤消最后⼀次修改U 撤消当前⾏的所有修改重复最后⼀次修改, 以相反的⽅向重复前⾯的 f、F、t 或 T 查找命令; 重复前⾯的 f、F、t 或 T 查找命令"np 取回最后第 n 次的删除(缓冲区中存有⼀定次数的删除内容,⼀般为 9) n 重复前⾯的 / 或 ? 查找命令N 以相反⽅向重复前⾯的 / 或 ? 命令保存⽂本和退出 vi命令保存和/或退出操作:w 保存⽂件但不退出 vi:w file 将修改保存在 file 中但不退出 vi:wq 或 ZZ 或 :x 保存⽂件并退出 vi:q! 不保存⽂件,退出 vi:e! 放弃所有修改,从上次保存⽂件开始再编辑vi 中的选项选项作⽤:set all 打印所有选项:set nooption 关闭 option 选项:set nu 每⾏前打印⾏号:set showmode 显⽰是输⼊模式还是替换模式:set autoindent 继承前⼀⾏的缩进⽅式,特别适⽤于多⾏注释:set smartindent 为C程序提供⾃动缩进:set list 显⽰制表符(^I)和⾏尾符号:set ts=8 为⽂本输⼊设置 tab stops:set window=n 设置⽂本窗⼝显⽰ n ⾏:set number 显⽰⾏数:set nonumber 取消显⽰⾏数vi 的状态选项作⽤: = 打印当前⾏的⾏号:= 打印⽂件中的⾏数ctrl+g 显⽰⽂件名、当前的⾏号、⽂件的总⾏数和⽂件位置的百分⽐:l 使⽤字母 "l" 来显⽰许多的特殊字符,如制表符和换⾏符在⽂本中定位段落和放置标记选项作⽤{ 在第⼀列插⼊ { 来定义⼀个段落[[ 回到段落的开头处]] 向前移到下⼀个段落的开头处m(a-z) ⽤⼀个字母来标记当前位置,如⽤ mz 表⽰标记 z'(a-z) 将光标移动到指定的标记,如⽤ 'z 表⽰移动到 z在 vi 中连接⾏选项作⽤J 将下⼀⾏连接到当前⾏的末尾nJ 连接后⾯ n ⾏光标放置与屏幕调整选项作⽤H 将光标移动到屏幕的顶⾏nH 将光标移动到屏幕顶⾏下的第 n ⾏M 将光标移动到屏幕的中间L 将光标移动到屏幕的底⾏nL 将光标移动到屏幕底⾏上的第 n ⾏^e(ctrl+e) 将屏幕上滚⼀⾏ctrl+y 将屏幕下滚⼀⾏ctrl+u 将屏幕上滚半页ctrl+d 将屏幕下滚半页ctrl+b 将屏幕上滚⼀页ctrl+f 将屏幕下滚⼀页ctrl+l 重绘屏幕z-return 将当前⾏置为屏幕的顶⾏nz-return 将当前⾏下的第 n ⾏置为屏幕的顶⾏z 将当前⾏置为屏幕的中央nz 将当前⾏上的第 n ⾏置为屏幕的中央z- 将当前⾏置为屏幕的底⾏nz- 将当前⾏上的第 n ⾏置为屏幕的底⾏vi 中的 shell 转义命令选项作⽤:!command 执⾏ shell 的 command 命令,如 :!ls:!! 执⾏前⼀个 shell 命令:r!command 读取 command 命令的输⼊并插⼊,如 :r!ls 会先执⾏ ls,然后读⼊内容:w!command 将当前已编辑⽂件作为 command 命令的标准输⼊并执⾏ command 命令,如 :w!grep all:cd directory 将当前⼯作⽬录更改为 directory 所表⽰的⽬录:sh 将启动⼀个⼦ shell,使⽤ ^d(ctrl+d) 返回 vi:so file 在 shell 程序 file 中读⼊和执⾏命令vi 中的宏与缩写(避免使⽤控制键和符号,不要使⽤字符 K、V、g、q、v、*、= 和功能键)选项作⽤:map key command_seq 定义⼀个键来运⾏ command_seq,如 :map e ea,⽆论什么时候都可以 e 移到⼀个字的末尾来追加⽂本:map 在状态⾏显⽰所有已定义的宏:umap key 删除该键的宏:ab string1 string2 定义⼀个缩写,使得当插⼊ string1 时,⽤ string2 替换 string1。
gvim let用法
gvim let用法
在Gvim中,`let`命令用于生成变量和给变量赋值。
以下是其基本用法:
1. 定义变量:`let foo=42` 或 `let bar="i'm text"`。
2. 使用变量:`echobar` 或 `echom foo`。
3. 修改本地选项(local option):如给当前窗口(window)或者缓冲区(buffer)设置number选项,可以使用`setlocal number`;若想使用`let`命令设置,则为`let &l:number=1`。
4. 寄存器变量:在vim脚本中,支持寄存器变量。
比如,将“hello”写入
寄存器a中,可以使用命令“let a="hello"”。
之后,在normal mode下,可以使用“ap”命令将a中的内容写入到当前光标位置之后。
请注意,vimscript中的变量有几种作用域,可以查阅vim的帮助文档以获取更多信息。
Gvim常用操作
////////////////////////////////////////////Gvim常用操作////////////////////////////////////////////移动光标方向键:h 左j 下k 上l 右光标向下移动多行,比如90行:90j光标向上移动多行,比如90行:90k光标向左移动多行,比如90行:90h光标向右移动多行,比如90行:90l光标跳到全文首:gg光标跳到全文末尾:Shift+g或者G光标移动到行首:Shift+^光标移动到行末:Shift+$光标移动到所在单词词首,向前跳:b光标移动到所在单词词首,向后跳:w光标移动到所在单词词尾:e光标移动到某一行,比如第90行::90///////////////////////////////////////////////////////////////////////////////////保存和删除保存::w强制保存::w!强制保存并退出::wq!撤销:u删除1行:dd删除多行,如5行:5dd删除光标所在字符:x替换光标所在字符(也可以列操作):r新字符删除光标所在直到词尾:dw删除光标所在直到行尾:d$///////////////////////////////////////////////////////////////////////////////////编辑(选择、复制、粘贴、删除、查找和替换)查找:/目标字符串然后按n找下一处(类似windows下的F3)替换:%s/被替换字符串/新字符串/g%s/被替换字符串/新字符串/列操作:Ctrl+v移动光标,如h,j,k,lShift+i或者shift+a操作Esc选中当前行:Shift+v选中全文:光标移动到全文首选中当前行光标移动到全文尾巴(gg,shit+v,shift+g)鼠标中键:粘贴选择文本:左键确定选择的起点,右键确定选择的终点。
gvim find用法
在GVim 中,可以使用“查找和替换”(Find and Replace)对话框和键盘快捷键来查找和替换文本。
一般情况下,可以打开“查找和替换”对话框进行查找操作:
1. 使用快捷键`Ctrl-F` 或菜单`Edit -> Find...` 打开“查找和替换”对话框。
2. 在“查找”文本框中输入需要查找的字符串,可以使用通配符和正则表达式。
3. 点击“查找下一个”按钮或使用快捷键`F3`,GVim 会定位到下一个匹配项位置。
如果需要查找上一个匹配项,则使用快捷键`Shift-F3`。
4. 如果需要替换匹配项,则可以在“替换”文本框中输入替换字符串,并点击“替换”或“全部替换”按钮。
如果需要查看每一项匹配之后才进行替换,则使用“确认替换”选项。
除了使用“查找和替换”对话框之外,GVim 还提供了一些快捷键来简化查找操作,例如:
- `/` 和`?`:分别用于在当前文件中向前和向后查找。
- `n` 和`N`:用于在当前查找结果之间切换。
- `*` 和`#`:分别用于查找当前单词出现的下一个和上一个位置。
以上是GVim 查找和替换的基本用法,还有更多高级的查找和替换方式,例如使用正则表达式或结合替换命令等,可以参考GVim 的官方文档进行学习。
gvim常用操作命令
gvim常用操作命令gvim是一个功能强大的文本编辑器,它拥有丰富的操作命令。
以下是一些常用的操作命令:1. 打开文件,在命令模式下输入 ":e 文件名" 可以打开指定的文件。
2. 保存文件,在命令模式下输入 ":w" 可以保存当前文件。
3. 另存为,在命令模式下输入 ":w 文件名" 可以将当前文件另存为指定文件名。
4. 退出,在命令模式下输入 ":q" 可以退出 gvim 编辑器。
5. 强制退出,在命令模式下输入 ":q!" 可以强制退出 gvim 编辑器,即使文件未保存也会退出。
6. 复制、剪切、粘贴,在普通模式下使用 "yy" 可以复制当前行,使用 "dd" 可以剪切当前行,使用 "p" 可以粘贴复制或剪切的内容。
7. 撤销和重做,在普通模式下使用 "u" 可以撤销上一步操作,使用 "Ctrl + r" 可以重做上一步操作。
8. 查找和替换,在命令模式下输入 "/要查找的内容" 可以查找指定内容,输入 ":s/要替换的内容/替换后的内容/g" 可以进行替换操作。
9. 跳转到指定行,在命令模式下输入 ":行号" 可以跳转到指定行。
10. 设置行号显示,在命令模式下输入 ":set number" 可以显示行号,输入 ":set nonumber" 可以关闭行号显示。
以上是一些常用的gvim操作命令,希望对你有所帮助。
如果你有其他问题,也可以继续问我。
gvim hilink的用法
gvim hilink的用法
在gvim(即GUI版的Vim文本编辑器)中,"hilink"是用于设置高亮链接的指令。
使用hilink可以创建从一组高亮组到另一组高亮组的链接,这样当光标悬停在链接上时,它们会以特定的方式高亮显示。
以下是一些关于hilink用法的具体说明:
1. 基本语法:hilink命令的基本语法是`:hilink <group1> <group2>`,这会将`group1`的高亮样式设置为和`group2`一样。
2. 自定义高亮:如果你想要自定义gvim界面的各个部分的颜色、背景等属性,可以通过编辑`~/.vimrc`文件来实现。
在这个文件中,你可以使用`hi`命令定义新的高亮组并设置它们的颜色和样式。
3. 修改已有高亮组:除了定义新的高亮组,你还可以使用`:hi clear`来清除特定高亮组的设置,或者用`:hi link`来将一个高亮组链接到另一个已存在的高亮组。
4. 应用高亮组:一旦你定义了高亮组,就可以在gvim中使用`:hilink`命令将这些自定义高亮应用到特定的文本或界面元素上。
例如,假设你想要让所有的字符串(string)高亮显示为和你的定义的`MyGroup`一样,你可以在gvim中执行`:hilink string MyGroup`。
总的来说,hilink在自定义gvim界面的时候非常有用,它允许用户通过高亮链接来改善代码的可读性以及提供更舒适的编码环境。
gvim flag为e的用法
gvim flag为e的用法GVim(全名为GNU VIM)是一个强大的文本编辑器,是Vim编辑器的一个版本。
它可以在多种操作系统上运行,包括Windows、Linux和macOS等。
GVim提供了丰富的功能和扩展性,并且可以通过各种配置和定制来满足用户的需求。
在GVim中,flag为e具有一些特殊的用法和功能,下面将详细介绍它的用法及相关参考内容。
1. 打开文件:在GVim中,使用-e flag可以打开一个指定的文件。
例如:```$ gvim -e example.txt```上面的命令将打开一个名为example.txt的文件。
2. 启用易于使用模式:GVim中的-e flag还可以启用易于使用模式。
在这种模式下,GVim将更加友好地展示和处理文本。
例如,启用易于使用模式后,GVim将显示行号、语法高亮等。
3. 执行脚本:GVim中的-e flag还可以用于执行脚本。
例如,可以使用以下命令执行一个脚本文件:```$ gvim -e -S script.vim```上面的命令将打开GVim并执行名为script.vim的脚本文件。
4. 编辑vimrc文件:-e flag还可以用于编辑vimrc文件。
vimrc文件包含了GVim的配置选项和定制设置。
通过使用以下命令,可以打开vimrc文件并进行编辑:```$ gvim -e -u vimrc```上面的命令将打开名为vimrc的文件,并允许对其进行编辑。
5. 执行ex命令:在GVim中,使用-e flag还可以执行ex命令。
ex是GVim的一种命令行方式,可以用于执行各种操作,如文本查找、替换、删除等。
通过以下命令,可以在GVim中执行ex命令:```$ gvim -e -c "command"```上面的命令将在GVim中执行给定的ex命令。
除了以上的用法,-e flag还有其他一些特殊的用途,可以根据需要进行定制和配置。
gvim sort用法
gvim sort用法
Vim是一个文本编辑器,gvim是Vim的图形用户界面版本。
Vim内置了针对文本进行排序的sort命令。
下面提供一些常见的Vim sort命令:
1. 排序
如果你想要对特定的行范围进行排序,可以使用`:3,16sort`,例如,这将把第3行到第16行的内容进行排序。
在可视化模式下选中文本,然后执行`:'<,'>sort`可以对选择的文本进行排序。
2. 去重
`:%sortu`命令可以用于在排序时去除重复的行。
对于重复的多行,将仅仅保留第一行,而其它的行将被删除。
3. 倒序排序
`:%sort!`命令可以用于对所有文本进行倒序排序。
4. 按照数字排序
`:%sortn`命令将按照数字进行排序。
组合以上命令,则可以按照数字倒序排序:`:%sort!`。
请注意,Vim内置的sort命令与Linux系统下的!sort命令并非完全一致。
另外,如果你需要对文本块进行排序,可能需要先进行一些预处理,例如将换行符替换为特定字符,然后合并行,再进行排序,最后再重新拆分行以恢复原有的文本格式。
具体步骤可能需要根据你的实际需求进行调整。
在使用Vim sort命令时,可以通过`:help :sort`命令查看详细的帮助信息。
如果你需要更多关于Vim sort命令的帮助,建议查阅相关的Vim文档或教程。
[vim与gvim技巧]vimgvim技巧大全(10)
[vim与gvim技巧]vimgvim技巧大全(10)转自:/uid-8494387-id-2030955.htmlvi编辑器的学习使用(二十一)我们在Vim编辑器的学习使用(五)中曾结讨论了一些基本的窗口使用命令.这些命令可以使得我们在不同的窗口内进行编辑工作,从而使得我们编辑多个文件成为可能.而在这里我们将会讨论一些更多的与窗口相关的命令操作.当我们使用多个窗口进行文件编辑时,我们如何来进行窗口的切换操作呢?我们可以使用命令CTRL-Wj回到下一个窗口,而使用命令CTRL-Wk回到上一个窗口.我们还可以使用下面的命令来进行窗口的切换操作:CTRL-Wt 切换到顶部的窗口CTRL-Wb 切换到底部的窗口CTRL-Wp 切换到我们进行切换操作以前我们所在的窗口countCTRL-Ww 向下切换一个窗口.如果是在底部,则进行回环.如果指明了数字,则切换到数字所指定的窗口.countCTRL-WW 向下切换一个窗口,如果是在顶部,则进行回环,如果指蝗了数字,则切换到数字所指定的窗口我们在使用多个窗口进行文本编辑的时候,我们还可以进行窗口的移动,命令CTRL-Wr命令可以使得窗口向下进行循环移动.这个命令可以带一个数字作为参数,可以指明向下循环移动所执行的次数.与其相类似的命令是CTRL-WR命令,这个命令可以使得窗口向上循环移动.命令CTRL-Wx可以使得我们将当前窗口与下一个窗口进行位置的对换.如果当前是一个底部,则没有下一个窗口,这时执行这个命令时是将当前窗口与上一个窗口进行位置对换.当我们在用多窗口进行多文件的编辑时我们可以用命令对这些文件进行共同的操作.:write命令可以保存当前文件.我们可以用下面的命令来实现对所有已经修改过的文件,包括隐藏缓冲区中的文件,进行保存操作::wall命令:quit可以退出当前文件.如果这是一个文件的最后一个窗口,那么这个文件将会被关闭.如果我们同时打开了多个窗口进文本的编辑,我们可以用下面的命令来退出所有的文件::qall如果在这些文件中有文件进行了修改但是没有保存,在执行这个命令时会给出警告信息,这样我们就可以保存那些我们没有保存的修改了,但是如果我们想要放弃我们所做修改工作而强行退出我们可以用下面的命令::qall!我们还可以将这个两个命令进行组合来实现对所有文件的保存退出的命令::wqall命令CTRL-Wo可以使得当前窗口成为屏幕上的唯一的一个窗口,而其他的窗口全部关闭.系统会认为我们在其他的每一个窗口中都执行了命令:quit.如果我们通过命令:args file-list指定了一个文件列表或是在启动vim时指定了一个文件列表,那么:all命令就会为每一个文件打开一个窗口,这样我们就可以进行多文件的编辑工作了.下面的命令由命令:all变化而来的,这个命令可以每一个隐藏的缓冲区打开一个窗口::unhide这个命令还可以带一个参数,用来指明一次打开的窗口数.例如如果我们要打开所有的缓冲区但是在屏幕上显示不超过5个窗口,我们可以用下面的命令::unhide 5我们还可以用CTRL-W CTRL-^命令来分裂窗口来编辑交替文件.这个命令是新打开一窗口,并在这个窗口中装入交替文本并进编辑.而命令CTRL-^则是通过切换窗口来编辑交替文件.命令CTRL-W CTRL-I会分裂当前窗口,然在查找当前光标下的单词第一次出现的地方.这样的查找不不仅是在当前文件中查找,也会在由#include所包含进来的文件中进行查找.在Vim中还有许多缩写的命令可以来快的完成工作,如下面的一些命令::countsnext :split与:countnext的组合:countsprevious :split与:countprevious的组合:countsNext :split与:countNext的组合:srewind :split与:rewind的组合:slast :split与:last的组合:sargument :split与:argument的组合CTRL-WCTRL-D :split与]CTRL-D的组合CTRL-Wf :split与:find的组合CTRL-Wg] :split与CTRL-]的组合在这些命令一个算是优点的地方就是如果命令执行失败那么是不会打开一个新的窗口的.我们在用Vim编辑器进行文件编辑的时候可以用不同的缓冲区装入不同的文件,我们可以在启动Vim时指定要编辑的文件列表,我们也可以在编辑的过程中用下面的命令新增一个缓冲区::badd filename这样这个指定的文件就会被加到缓冲区的列表中.这个文件的编辑过程只有我们切换到那个缓冲区时才会开始.这个命令还可以带参数,来指明当我们为这个缓冲区打开窗口时,光标所处的位置::badd +lnum filename我们可以用下面的命令来删除一个缓冲区::bdelete filename或者是也可以用下面的命令::bdelete 3:3 bdelete我们还可以用下面的命令来删除指定范围的缓冲区::1,3 bdelete如果我们使用了!选项,那么我们在缓冲区所有的所有的改动都会被放弃::bdelete! filename命令:bunload会卸载一个缓冲区,这样这个缓冲区就会从内存中卸载,所有为这个缓冲区打开的窗口也会关闭.但是这个文件名文件名仍然会存在于这个缓冲区列表中.:bunload命令与:bdelete命令的用法相类似.我们可以用下面的命令来为每一个缓冲区打开一个窗口::ball我们可以用laststatus选项来控制最后一个窗口是否显示状态行,这个选项的值如下:0 最后一个窗口从不显示状态行1如果在屏幕上只有一个窗口,那么不显示状态行.如果有两个或更多个,则要在最后一个窗口显示状态行.2 在窗口上总是显示状态行,哪怕屏幕中只有一个窗口.我们可以用winheight选项来控制一个窗口最小的行数.但是这个并没有一个硬性的限制,如果窗口显得太拥挤了,Vim会减少窗口的尺寸.当我们打开equalalways选项后,Vim会以相同的尺寸来分裂窗口,而这也正是Vim编辑器默认的情况,但是如果我们设置了noeqaulalways选项后我们就可以用不同的尺寸来分裂一个窗口.winheight选项用来控制当前窗口的最小高度.而winminheight 选项则用来控制其他窗口显示的高度.在通常的情况下,:split命令是在当前窗口的上方打开一个新窗口.而splitbelow选项可以使得Vim在当前窗口的下方打开一新窗口.假如我们正在编辑一个很长的文件,而现在天已经晚了,我们想着退出工作并在第二天接着做.这时我们可以将我们正在编辑的文件信息存成一个文件,在我们要第二天要接着编辑这个文件时只要读入这个文件就可以了.这样的一个文件包含了所有我们正在编辑的文件信息,例如文件列表,窗口,标记,寄存器以及其他的一些信息等等.我们可以用下面的命令来产生一个程序文件::mksession filename例如我们存储的文件是::mksession vimbook.vim如果我们要接着工作,想要装入这个程序文件时只要用下面的命令: :source vimbook.vim我们也可以在启动Vim时指明要读入的程序信息文件:$ vim -c ":source vimbook.vim"我们可以使用sessionoption选项来控制我们在这样的文件存入什么样的内容.他是由逗号分开的一系列的关键的字符串组成的.例如默认的设置是这样的::set sessionoptions=buffers,winsize,options,help,blank可能的关键字的值如下:buffers 保存所有的缓冲区.包括在屏幕上显示的以及隐藏的和卸载的缓冲区.globals 保存全局变量.这些全局变量是由大写和至少一个小写字母组成的.help 帮助窗口blank 屏幕上的空窗口options 所有的选项和键盘映射winpos GUI窗口的位置resize 屏幕的尺寸winsize 窗口的尺寸slash 在文件名中用斜线来代替空格.unix 用UNIX的行结尾格式来保存程序信息文件.vi编辑器的学习使用(二十二)我们在Vi编辑器的学习使用(六)学习了基本的可视化模式,这时我们可以执行简单的可视化命令.在这里我们将会讨论更多的与可视化相关的命令.这些命令中的许多只有很少的观众,如果我们可以看这一次的学习,也许这很少的观众中就会包括我们.我们在Vi编辑器的学习使用(四)知道了如何来用寄存器实现复制,粘贴和删除的工作.我们也可以在可视化模式中来实现这些操作.例如要删除一个文本我们可以这样的来做:在可视化模式中高亮显示这些文本,然后执行d命令.如果要将这些文本删除后放入寄存器中,我们可以用下面的命令来实现:"register d.要复制文本到寄存器中我们可以使用y命令.而D和Y命令与其相对应的小写字母的命令相类似,只是他们作用在一整行,而d和y命令是作用于高亮显示的部分.在块可视化模式中,$命令可以使得选中的文本扩展到所有的选中行的结尾处.当我们上下移动光标时,可以使得选中的文本扩展到这一行的结尾处.如果新行要比当前行长得多,这样的扩展也是会发生的.gv命令可以重复前一次可视化模式时选中的文本.如果我们已经在可视化模式状态下,执行这个命令时会选中前一次选中的文本.如果我们重复执gv命令,就会在当前选中的文本和前一次选中的文本之间进行切换.在Vim编辑器的可视化模式下的许多命令都是用来帮助我们高亮显示我们想要的文本的.例如命令aw高亮显示下一个单词.事实他不仅高亮显示这个单词,而且也包括这个单词后的空格.在一开始也许我们会认为这个命令没有太大的用处.因为w命令可以向前移动一个单词,我们为什么不用这个命令呢?这是因为当我们执行选择文本的操作时,选中的是从老的光标所在处到新的光标所在处之间的文本.当我们使用命令w来移动文本时,结果是光标置于下一个单词的第一个字符上.如果这时我们要执行删除操作,我们命令的执行是不仅删掉了我们要删掉的单词,也同时删除了下一个单词的第一个字符.而aw命令是将光标放在下一个单词的第一个字符的前面.换句话说,我们选中的是下一个单词前面的单词以及空格,而不是选中的下一个单词.而另外一个使用aw命令而不使用w命令的原因就是不论光标置于一个单词的哪一个字符上,aw命令都可以选中整个单词,而w命令只是选中当前光标处和这个单词结尾之间的字符.如果我们仅仅是想选中一个单词我们可以使用iw命令.我们还可以使用下面的命令来选择文本:countaw 选中一个单词以及其后的空格.countiw 仅仅是选中一个单词.countaW 选中一个WORD以及其后的空格.countiW 仅仅是选中一个WORDcountas 选中一个句子以及其后的空格.countis 仅仅选中一个句子.countap 选中一个段落以及后面的空格.countip 仅仅是选中一个段落.counta( 在括号所包括的文本内,选择直到括号的文本并包括括号.counti( 与上面的命令相类似,只是不包括括号.counta< 选择<>内的文本,包括<>counti< 选择<>内的文本,不包括<>counta[ 选择[]内的文本,包括[]counti[ 选择[]内的文本,不包括[]counta{ 选择{}内的文本,包括{}counti{ 选择{}内的文本,不包括{}在可视化模式下,当我们选中一些文本以后,我们可以用命令o来使用光标移动选中的文本的另一个结尾处.然后我们可能再次执行o命令,来使得光标移动选中文本的另一个结尾处,也就我们来的地方.而O命令可以在块可视化模式下将光标移动选中文本的另一角.换句话说,O命令是将光标移动选中文本中的同一行的结尾处.在可视化模式下选中的文本,我们可以用命令~来实现大小写的转换.而U命令是使得选中的文本变成大写的形式,而u命令是将选中的文本变为小写的形式.我们可以在可视化模式下选中文本,然后用命令J将这些选中的行合并为一行,并用空格来分隔这些行.如果我们希望在合并以并没有空格来分隔,我们可以用命令gJ.我们可以用命令gq来格式化可视化模式下选中的文本.我们还可以用g?命令来加密高亮显示的文本,在这个命令中我们采用的是Vim中所采用的rot 13加密算法.如果我们对同一个文本进行两次加密操作,就相当我们进行了解密操作.在可视化模式下我们还可以用命令:来对指定的范围进行命令行操作.例如我们要将文本块写入一个文件我们可以这样的来做: 在可视化模式下选中我们要写入文件的文本,然后执行下面的命令: :write block.txt这样就可以将指定的文本块写入文件了.命令!是使用外部的命令来对我们所要编辑的文件中的文本进行操作.例如我们可以使用!sort来使用UNIX下的sort程序进行文本的排序.我们可以这样的来做:在可视化模式下选中我们要进行操作的文本,然后执行下面的命令: :!sort这样就可以对这些我们选中的文本进行排序操作了.选择模式是另一种的可视化模式,他可以允许我们对选中的文本进行的快速的删除作替换的操作.我们使用选择模式也是很简单的操作.我们可以高亮显示文本,然后用来删除这段文本.我们也可以高亮显示文本,然后用我们所输入的内容来替换这些文本.那么选择模式和可视化模式相比较又如何呢?在可视化模式下,我们可以高亮显示我们选中的文本,然后执行命令操作.换句话我们要用命令来结束可视化模式.而在选择模式下,命令仅限于(用于操作删除操作)和可打印的字符(用于替换操作).这样就会使得我们的操作变得更为简单,因为我们不需要来输入命令了,然而与可视化模式相比较他也有着太多的限制.我们可以用下面命令来开始一种选择模式:gh 进入字符选择模式gH 进入行选择模式gCTRL-H 进入块选择模式在选择模式下移动光标比在正常模式下要显得困难一些.因为如果我们输入任何的可打印字符,Vim就会删掉我们选中的文本并进插入状态开始我们的输入.所以要选择文本我们只好使用小方向键,CTRL以及功能键.如果我们进行了如下的设置我们还可以用鼠标来选择文本::set selectmode=mouse(注:如果没有设置这个选项,可以在可视模式下执行鼠标操作而不可以在选择模式下执行鼠标操作)在选择模式下,我们可以用命令或是CTRL-H来删除我们选中的文本.如果我们输入可打印的字符Vim编辑就会删除我们选中的文本然后进入插入模式.我们可以用命令CTRL-O来从选择模式切换到可视化模式.如果我们要可视化模式和选择模式中进行切换,我们可以使用CTRL-G命令.在通常情况下,当我们选择文本后,这些文本仍会保持选中的状态.有时即使是我们在执行了命令以后,这些文本仍然保持选中的状态.gV命令可以选得选中的文本在命令执行过后消失选中状态.这个在我们使用宏时显得更为有用.我们用他来一些工作,工作完成以后,我们就希望他能消失.vi编辑器的学习使用(二十三))Vim编辑器由一群需要一个好的文本编辑器的程序员们所写出来的.正因为是这样,Vim中包含了许多的命令,我们可以用这些命令来自定义并且使我们的程序编辑工作变得更为简单.例如如果我们现在正在编辑我们的程序文件.我们设置了autoindent选项,并且现在正处在第三层次的缩进上.而现在我们要加入一个注释块.这是一个很大的注释块,我们希望能将这个注释块放在文本的第一列.这时我们就需要禁止所有的自动缩进形式.为了这样的目的,一种方法是可以输入几次CTRL-D命令,或者是使用0CTRL-D命令.命令0CTRL-D是在插入模式下移除所有的自动缩进的设置,并将光标放在第一列(在这里我们要注意的,当我们输入0时,我们所输入的0会显示在屏幕上,这时Vim会认为我们要在文本中插入一个0,然后我们执行命令CTRL-D,这时Vim就会意识到我们要做的是执行命令0CTRL-D,并且这时0会就会从屏幕上消失.当我们使用0CTRL-D命令以后,光标会回到第一列,而且下一行也是从第一列开始的.然后如果我们正在输入一个标签或是我们要输入#ifdef时我们只需要一行中的光标移动第一列就可以了.这时我们可以使用命令^CTRL-D.这个命令只会将当前行的光标放在第一列.当我们开始下一行时,这种缩进形式又会自动的执行.CTRL-T命令与命令相类似,只是前者在文本中插入一个缩进,而这个缩进的大小由shiftwidth选项来控制的.如果我们设置了shiftwidth 选项的值为4,我们输入,光标会移动以后第八列处,这是因为缩进的大小是由tabstop选项来控制的,而在默认的情况下这个值为8.但是如果我们输入了CTRL-T命令就会将光标移动以后的第四列处.这两个命令在一行的任何一点都是可以正常工作的.所以我们可以输入一些文本然后执行CTRL-T命令将其缩进,然后用CTRL-D来取消这样的缩进形式.在通常的情况下当我们用命令CTRL-R来插入寄存器中的内容时,这些内容是自动缩进的.如果我们不希望这样的事情发生,我们可以用CTRL-RCTRL-Orgister命令.或者是如果我们要插入寄存器中的内容,并希望Vim编辑能正确的完成我们的要求我们可以用下面的命令CTRL-R CTRL-P register.这样的命令在我们的程序文件中进行剪切和复制时显得尤为有用,因为在这时的程序文件中一般是设置了自动缩进选项的,而如果我们剪切或是复制后再粘贴时就会用两次的缩进操作,而这不是我们所希望的,这时我们就要用这些命令了.在通常的情况下,命令"registerp命令是将指定寄存器中的文本插入到缓冲区中,而命令"register]p命令与此相类似的,所不同的是这个命令在插入时会有自动缩进的设置.而与此相类似的是命令"register]P与"registerP.在计算机产生以前的时代,存在着一个交流的工具被叫作打印机.打印机的一些模块可以执行tabs.但是很不幸的是这些tab的大小被设置成为八个空格.而在计算机产后以后,他的第一个终端就是打印机.后来有一些更为现代的设备代替了打印机,但是古老的八个空格大小的tab被保留了下来,以保持与以前的相兼容.但是这样的设计为我们以后的程序设计工作带来无尽的麻烦.因为有研究可以显示最易读的程序是四个字符的缩进,而Tab是八个字符的缩进.我们如何来调合这样的事实.人们想出了许多解决的办法,如下:1 在我们输入代码时结合使用空格和Tab.如果我们需要12个字符的缩进,我们可以使用一个Tab和四个空格.2 告诉机器将Tab设为四个字符的大小,然后在任何的地方使用Tab.3 放开我们的双手并且认为Tab是一个工作的魔鬼,而且我们总是使用空格.幸运的是Vim编辑器支持以上的三种方法.如果我们使用空格和Tab的组合,我们可以像正常一样的进行编辑.在默认的Vim设置情况下就可以很好的来工作.但是我们可以通过设置softtabstop选项的值的来使我们的工作变得再简单一些.这个选项告诉Vim编辑使得Tab键看上去和感觉上是使用softtabstop选项贩值,但是实际上我们是使用Tab和空格的结合在做事情.例如我们可以用下面的命令来使得以后每一次我们在按下Tab键时光标位于以后的第四列处::set softtabstop=4当我们第一次按下T ab时,Vim会在文本中插入四个空格.当我们第二次按下Tab键时,Vim就会去掉刚才的四个空格,然后在文本中插入一个Tab.也就是说当有八个空格相当于一个Tab时,Vim就会用一个Tab 来代替这八个空格.另一个相关的选项就是smarttab选项.我们可以用下面的合谋来设置这个选项::set smarttab当我们设置了这个选项以后,插入一行开头的Tab就会被看作是软Tab.在这种情况下,T ab的大小所使用的值就是shiftwidth选项所设定的值.但是在其他的地方插入的Tab就会像是正常的Tab一样的.在这里我们要注意的就是当我们要让这个选项来正常工作时,一定要使软Tab 关掉(:set softtabstop=0).精巧缩进(smart indent)是软Tab和正常Tab的组合.当我们执行下面的命令,Vim编辑器就会区别对待一行开头的Tab::set smarttab例如如果我们有下面的设置::set shiftwidth=4:set tabstop=8:set smarttab在这些设置中我们是设置Tab是八个空格而缩进是四个空格.当我们在一行的开始输入Tab时,光标就会移动一个缩进的大小,也就是四个空格.当我们输入两个Tab时,光标就会移动两个缩进的大小,也就是八个空格.下面的内容则显示出了我们在一行的开始输入特定的内容时的显示:四个空格一个Tab一个Tab,四个空格两个Tab但是当我们在一行的其他地方输入Tab时,就会显得像正常的一样.我们可以用下面的命令来设置一个Tab为四个空格::set tabstop=4事实上我们可以用这个命令来将Tab设置成任何我们想要的值.如果我们在我们的文件中含有Tab字符,我们可以通过设置expandtab选项来控制.当我们设置了这个选项,一个Tab键就会插入一系列的空格.在这里我们要知道的就是expandtab选项并不会影响文章中的其他的Tab键值.换句说文档中的T ab值仍然会保持.如果我们要将Tab转换为空格,我们可以使用:retab命令.我们可以使用:retab命令来实现在文章中不同Tab设置之间的转换.我们可以用这个命令来使得文章中一系列的空格转换为T ab,或者是将一个Tab转换为一系列的空格.例如现在我们有一个文件使用是四个空格的Tab设置.但是这并不是标准的设置,而我们希望将他转换为八个空格的设置.我们希望这两个文件看起来是一样的,只是Tab的值不同.我们可以按照下面的方法来做::set tabstop=4:%retab 8这样以后我们的文件看起来就像是没有做过修改一样的,因为Vim 将空白符与tabstop的新值相匹配.再比如我们需要一个没有Tab的文件.首先我们执行命令设置expandtab选项.这样就会使得我们输入的新文本中的Tab成为空格.但是老文本中的Tab依然存在.要将这些T ab转换为空格,我们可以用下面的命令::%retab因为我们没有指定一个新的Tab值,Vim就会使用现在的tabstop 的值.但是因为我们又设置了expandtab这个选项,所以所有的Tab就会用空格来代替.在这些Tab设置中存在的问题就是会有不同的人用不同的习惯来使用Vim处理文件.所以说如果我们可以很好的处理三种不同类型的人写的文件,我们就可能容易的确处理各种不同的Tab设置.这个问题的一个解决办法就是我们在写文件的时候在文件的开头或是文件的结尾下加上一个注释块,在其中标出我们所使用的Tab设置.例如: /*vim:tabstop=8:expandtab:shiftwidth=8*/当我们知道这些以后我们可以建立我们自己所喜欢的格式.但是Vim是一个精巧的编辑器,他可以理解类似这样的注释并且为我们配置这些设置.但是有一点是要严格执行,那就是注释必须是这种形式的,而且是必须是在一个程序文件的前五行或是后五行才可以.这种类型的注释就叫做模式行(modeline).假如我们设置了shiftwidth的值为四,而我们在一行的开始输入了三个空格.那么当我们执行命令>>时会是什么样呢?会在前面插入四个空格的缩进还是移动到最近的一个缩进处呢?答案取决于我们所设置的shiftround选项的值.以通常的情况下,这个选项是没有设置的,所以会新增四个空格的缩。
gvim多标签切换
gvim多标签切换新建标签页使用:tabe命令和文件名参数,可以在新标签页中打开指定的文件。
也可以使用:tabnew命令,在新标签页中编辑新的文件。
命令:tabsplit将在新标签页中,打开当前缓冲区中的文件。
命令:tabf允许你在当前目录搜索文件,并在新标签页中打开。
比如我想打开当前目录下的img.txt文件,那么就可以使用:tabfimg.*命令。
请注意,此命令只能打开一个文件,如果搜索出多个匹配文件,将提示你“文件名过多”,这时你需要给出更精确的搜索条件以打开文件。
Vim默认最多只能打开10个标签页。
你可以用set tabpagemax=15改变这个限制。
列示标签页命令:tabs可以显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。
关闭标签页命令:tabc可以关闭当前标签页。
而命令:tabo将关闭所有的标签页。
切换标签页命令:tabn或gt可以移动到下一个标签页。
而命令:tabp或gT将移动到上一个标签页。
如果已经到达最后面或最前面的标签页,将会自动转向循环。
如果你打开了很多标签页,那么可以使用:tabfirst或:tabr命令,移动到第一个标签页。
使用:tablast命令,移动到最后一个标签页。
移动标签页如果你希望按照指定的次序排列标签页,那么你可以使用:tabm命令。
请注意,标签页次序是从0开始计数的。
比如命令:tabm1将把当前标签页移动到第2的位置。
如果你没有为:tabm 命令指定参数,那么当前标签页将会被移动到最后。
配置标签页默认情况下,只有用户新建了标签页才会在窗口上方显示标签栏,这是由选项setshowtabline=1决定的。
如果我们希望总是显示标签栏,那么可以用setshowtabline=2命令来设置。
如果我们希望完全不显示标签栏,那么可以使用setshowtabline=0来设置。
多标签页命令使用:tabdo命令,我们可以同时在多个标签页中执行命令。