vim

Linux vi/vim 常用命令

人盡茶涼 提交于 2019-12-23 01:01:21
Linux vi/vim 常用命令大全 (一)vi/vim是什么? Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本、C语言程序编辑等功能,可以作为程序编辑器。 (二)为什么要学习vi/vim? 首先所有的Linux发行版系统上都会默认内置vi编辑器,而不一定带有其他文本编辑器,非常通用;其次,很多软件的编辑接口都会默认调用vi;第三,vi具有程序编辑的能力;最后,vi程序简单,编辑速度相当快速。 (三)vi的三种模式及各个模式之间的转换关系 (四)一般模式常用操作 【h(或向左方向键)】 光标左移一个字符 【j(或向下方向键)】 光标下移一个字符 【k(或向上方向键)】 光标上移一个字符 【l(或向右方向键)】 光标右移一个字符 【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键) 【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键) 【[0]或[Home]】 光标移动到当前行的最前面 【[$]或[End]】 光标移动到当前行的末尾 【G】 光标移动到文件的最后一行(第一个字符处) 【nG】 n为数字

Vim入门级配置介绍

▼魔方 西西 提交于 2019-12-23 00:07:15
---介绍Vim配置文件.vimrc,配置Vim显示行号、支持utf8中文不乱码、突出显示Vim当前行,设置高亮显示括号匹配和tab缩进,解决Vim粘贴时多出缩进和空格问题。 一、Vim配置文件.vimrc Vim编辑器相关的所有功能开关都可以通过 .vimrc 文件进行设置。 .vimrc 配置文件分系统配置和用户配置两种。 系统vimrc配置文件存放在Vim的安装目录,默认路径为 /usr/share/vim/.vimrc 。可以使用命令 echo $VIM 来确定Vim的安装目录。 用户vimrc文件,存放在用户主目录下 ~/.vimrc 。可以使用命令 echo $HOME 确定用户主目录。 注意 :用户配置文件优先于系统配置文件,Vim启动时会优先读取当前用户根目录下的 .vimrc 文件。所以与个人用户相关的个性化配置一般都放在 ~/.vimrc 中。 二、Vim基本配置 默认情况下,Vim编辑器里既不显示行号,也没有语法高亮度、智能缩进。为了方便使用,基本的Vim配置选项一般都会包括: 2.1 支持中文不乱码 '设置编码' set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 与Vim编码有关的变量包括: encoding 、

7种提高工作效率的Vim操作

巧了我就是萌 提交于 2019-12-23 00:06:56
Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性。 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标执行相同的重复性操作。抛砖引玉,作为你体验使用Vim进行高效操作的入门级教程。 1. Vim重复操作命令. 在 vim重复操作命令. (英文句点) 介绍过, . 命令可以用于 重复上次修改 。在《Vim实用技巧》一书中花了大量篇幅介绍" . 范式":一次按键移动,一次按键执行。 假设想在以下的JavaScript代码里的 + 前后加上空格以使代码更加美观,可以执行以下Vim操作: f+s␣+␣<Esc>;.;.;. var foo = "method("+argument1+","+argument2+")"; 在上面的Vim操作中,首先使用字符查找命令 f 查找到第一个出现 + 的位置,然后使用 s 命令删除光标下的字符后再进入插入模式,在输入完 ␣+␣ 后退出插入模式,完成了第一个 + 前后增加空格的操作。 使用 Vim命令 ; 会在当前行重复查找上次 f 命令所查找的目标字符,而 . 命令则重复上次的修改。因此,可以连续输入 3 次 ;. 来完成全部修改操作。 注 :Vim命令 s 是 cl 的复合命令形式,表示删除一个字符并进入插入模式,更多内容可参考

再谈Vim substitute替换命令

核能气质少年 提交于 2019-12-23 00:06:52
在 Vim替换命令 一文介绍过, substitute 命令的语法格式为: :[range]s[ubstitute]/{pattern}/{string}/[flags] 。 [flags] 表示可选的标志位,常用的包括 g 、 c 、 n 、 e 等。其中,标志位 g 使得 substitute 命令可以修改一行内的 所有 匹配,而不仅仅是第一处匹配;标志位 c 可以确认或拒绝每一处修改;标志位 n 让 Vim 不执行替换操作,而只是统计和显示本次 substitute 命令匹配的个数;标志位 e 专门用于屏蔽错误提示;标志位 & 用于指示 Vim 重用上一次 substitute 命令所用过的标志位。 一、Vim substitute命令的操作范围 为了便于理解,可以将整个文件想象成一个二维平面,字符沿着 x 轴向右增加,而文本行则随着 y 轴向下增长。缺省情况下, substitute 命令仅仅作用于当前行,而且只会修改 第一处 匹配。 怎么才能将替换范围扩大到由 x 与 y 轴所围的整个平面?本文接下来以将下文中出现的所有单词 going 都替换为 rolling 为例逐步进行说明。 When the going gets tough, the tough get going. If you are going through hell, keep going. 使用

Vim光标移动命令汇总

白昼怎懂夜的黑 提交于 2019-12-23 00:05:14
原文链接: Vim教程网-Vim光标移动命令汇总 介绍Vim光标移动命令,移动vim光标到行首、行跳转、vim匹配单词和匹配括号跳转,Vim翻页命令。 一、Vim光标移动简介 Vi/Vim中进行光标移动的命令是针对不同的操作单位而设计,不同的命令对应不同的操作单位。 在执行Vim光标移动命令时,首先要分清楚是采用哪种操作单位:一个字符、一个句子、一个段落、一行、一屏、一页。 确定操作单位后,需要确定命令重复执行的次数。Vim光标移动命令的操作对象范围计算公式为: 操作范围 = 操作次数 x 操作单位 例如: 5h 命令表示左移5个字符, 8w 命令右移8个单词 二、Vim移动光标命令 2.1 上、下、左、右 ← h j ↓ k ↑ l → Vim的上下左右移动光标命令是经过精心设计的,我们在使用编辑器时最常用的操作是下移光标。 而键盘上的j、k按键使用最方便,所以分别用来作为下移、上移光标。 h、l分别位于j、k的两侧,根据其所在方位用来实现光标的左移和右移。 2.2 行级移动 0 移动光标到当前行 行首 $ 移动光标到当前行 行尾 ^ 移动光标到当前行的第一个非空字符 nG 移动光标到当前文件的第n行 :n 移动光标到当前文件的第n行 (同上) tips : (1) Vim的命令中, 0 表示行首, $ 表示行尾。可以回顾下 Vim文本编辑命令汇总 中提到的删除命令,里面就提到了

强大的vim配置文件,让编程更随意

只愿长相守 提交于 2019-12-22 20:03:22
花了很长时间整理的,感觉用起来很方便,共享一下。 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试 2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改 3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码 4.按“F2”可以直接消除代码中的空行 5.“F3”可列出当前目录文件,打开树状文件目录 6. 支持鼠标选择、方向键移动 7. 代码高亮,自动缩进,显示行号,显示状态行 8.按“Ctrl + P”可自动补全 9.[]、{}、()、""、' '等都自动补全 10.其他功能读者可以研究以下文件 vim本来就是很强大,很方便的编辑器,加上我的代码后肯定会如虎添翼,或许读者使用其他编程语言,可以根据自己的需要进行修改,配置文件里面已经加上注释。 读者感兴趣的话直接复制下面的代码到文本文件,然后把文件改名为“ .vimrc” (不要忘记前面的“.”),然后把文件放到用户文件夹的根目录下面即可。重新打开vim即可看到效果。 为方便管理,源码托管到了github,后期增加了好多新功能, 具体详见: https://github.com/ma6174/vim 这是在github上的vim配置的截图: 下面是精简的

什么是vim录音以及如何禁用它?

佐手、 提交于 2019-12-22 19:39:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我一直在gvim 7.2窗口底部看到 recording 信息。 它是什么以及如何将其关闭? #1楼 这意味着你处于“记录宏”模式。 通过键入 q 后跟注册名称输入此模式,可以通过再次键入 q 退出。 #2楼 听起来你打开了微距录音。 要关闭它,请按 q 。 有关详细信息,请参阅“ :帮助记录 ”。 相关链接: smr的博客:vim :: recording Vi和Vim宏教程:如何录制和播放 #3楼 您可以通过q <letter>开始录制,然后再次输入q即可结束录制。 录制是Vim非常有用的功能。 它记录您键入的所有内容。 然后,您只需键入@ <letter>即可重播。 记录搜索,移动,替换...... Vim恕我直言的最佳功能之一。 #4楼 正如其他人所说,它是宏录制,你用q关闭它。 这是一篇很好的文章, 讲述了如何以及为什么它有用。 #5楼 键入:h录音以了解更多信息。 *q* *recording* q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"} (uppercase to append). The ' q ' command is disabled while executing a register , and it

how to get directory names under a path in Vim script?

淺唱寂寞╮ 提交于 2019-12-22 18:36:32
问题 I want a simple solution to get directory names under a path in vim script. Here is my tried ways: the code. https://gist.github.com/4307744 Function is at line L84. I use this function as complete function for input(). So this function need to return a list of directory names under a path. e.g. to/path/ - a/ - b/ I want to get a and b . I tried to find vim internal functions with :help functions . only found globpath() , but it will return full path. So does anyone have a simple solution ?

Visual block insert in redhat vim

故事扮演 提交于 2019-12-22 18:25:58
问题 My ec2 server came with redhat vim: [ec2-user@****** ~]$ vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 7 2012 08:03:48) Included patches: 1-411 Modified by <bugzilla@redhat.com> Compiled by <bugzilla@redhat.com> I've read the wikia doc and many posts such as: Vim: How to insert in visual block mode? Visual block insert/append doesn't work All of the guide told me to do Ctrl+V , select the area, then Shift+i , type the character to be inserted, and ESC . This doesn't work for

Matchit skips to next list item in HTML instead of closing tag

﹥>﹥吖頭↗ 提交于 2019-12-22 17:57:39
问题 I downloaded the Matchit plugin and used it on my HTML file. Everything worked as it was supposed to until I used it on my list. <ol> <li id="link-1"><a href="http://www.reddit.com/">reddit</a></li> <li id="link-2"><a href="http://www.vim.org/">vim</a></li> <li id="link-3"><a href="http://www.w3schools.com/">w3schools</a></li> </ol> If the cursor is on the first o when I press tab the cursor jumps to the first list item instead of the closing ol . And when I'm on the l of the first list item