VIM 相关内容******************

vim 的三个模式:
编辑模式 --> 输入模式 --> 末行模式
编辑模式: 通常键入键盘值被理解成一个操作; 如: dd(删除行)、y(复制整行)
输入模式: 通常键盘的键入直接理解成文本
末行模式: 通常:打头开始等待用户键入操作

vim 模式之间相互切换(输入模式下不能直接进入末行模式)
编辑 --> 输入
i: 在当前光标所在字符前面,转为输入模式
a: 在当前光标所在字符后面,转为输入模式
o: 在当前光标所在行下面新建一行,转为输入模式

I: 在当前光标所行的行首,转为输入模式
A: 在当前光标所行的行尾,转为输入模式
O: 在当前光标所在行上面新建一行,转为输入模式

输入 --> 编辑
esc

编辑 --> 末行
:

末行 --> 编辑
esc(一次不管用多按一次)

一、打开文件:
vim /PATH/TO/FILE
vim +# /PATH/TO/FILE: 打开文件处在第#行 (: #表示数字
vim + : 打开文件滞留在最后一行
vim +/PATTERN : 打开文件,停留在第一次被PATTERN匹配之后

默认处于编辑模式

二、关闭文件
1.末行模式下关闭文件
w: 保存
q: 退出
q!: 强行退出
wq: 保存退出
w!: 强行保存
x : 保存退出
2.编辑模式下关闭文件
ZZ: 保存退出

三、移动光标(编辑模式)
1.逐字符移动
h: 左
l: 右
j: 下
k: 上
#h:移动#个字符

2.按单词为单位移动
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
#w:移动#个单词

3.行内跳转
0: 绝对行首
^: 行首第一个非空白字符
$: 绝对行尾

4.行间跳转
#G: 跳至第#行
G:最后一行

末行模式下,可直接给出行号

四、翻屏
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏

ctrl+d:向下翻半屏
ctrl+u:向上翻半屏

五、删除单个字符
x: 删除光标所在处的单个字符
#x: 删除光标所在处向后#单个字符

六、删除命令:d
d命令跟跳转命令组合使用
#d跳转符 -- #dw, #de ,#db

dd:删除当前光标所在行
#dd:删除包括当前光标所在行内的#行

末行模式下: startLine,endLine
.: 表示当前行
$: 末行
+#:向下#行

七、粘贴命令 p
P: 如果删除或复制的为整行内容,则粘贴至光标所在行的上方,
如果删除或复制的为非整行内容,则粘贴至光标所在字符的前面。
p: 如果删除或复制的为整行内容,则粘贴至光标所在行的下方,
如果删除或复制的为非整行内容,则粘贴至光标所在字符的后面。

八、复制命令 y
用法同d 命令

九、修改;先删除内容,再转换为输入模式
c: 用法同d命令

十、替换:r
R:替换模式

十一、撤销编辑操作
u:撤销前一次的编辑操作
连续u命令可撤销此前n次操作
#u:撤销#次操作

撤销最近一次撤销操作:ctrl+r

十二、重复前一次编辑操作
.

十三、可视化模式
v: 按字符选取
V: 按矩形行选取

十四、查找
/PATTERN
?PATTERN
n : (/PATTERN 下一个匹配结果; ?PATTERN 上一个匹配结果)
N : (/PATTERN 上一个匹配结果; ?PATTERN 下一个匹配结果)

十五、查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@STRING@修饰符
如: 0,$s@^root$@ROOT@g --> 从第0行到最后一行将小写的root替换成大写的ROOT
修饰符: g 全局; i 忽略大小写

%: 表示全文

&:引用模式匹配到的串

十六、打开多个文件
vim FILE1 FIEL2 ...
末行模式下:
next :下一个文件
prev :上一个文件
last :最后一个文件
first:第一个文件

退出
qa :全部退出

十七、分屏显示内容
ctrl+w,s: 水平拆分
ctrl+w,v: 垂直拆分

在窗口间切换光标
ctrl+w,方向光标

qa:关闭所有

十八、分窗口编辑多个文件
vim -o : 水平分割显示
vim -O : 垂直分割显示

十九、将当前文件中的部分内容另存为另外一个文件
末行模式下使用命令
:w
:ADDR1,ADDR2w /PATH/TO/FILE

二十、将另一个文件的的内容填充在当前文件中
:r /PATH/TO/FIEL

二十一、跟shell交互
:! COMMAND

二十二、高级话题
1、显示或取消显示行号
:set number 显示
:set nu
:set nonu 取消

2、显示忽略或区分字母大小写
:set ignorecass 忽略
:set ic
:set noic 关闭忽略

3、设定自动缩进
:set autoindent 开启
:set ai
:set noai 关闭

4、查找到的文本高亮显示或取消
:set hlsearch 开启
:set nohlsearch 关闭

5、语法作色
:syntax on 开启
:syntax off 关闭

二十三、配置文件
/etc/vimrc 全局vim配置文件
~/.vimrc 自定义vim配置文件

vim 学习相关记录的更多相关文章

  1. VIM配置相关记录

    把一直使用中的vim配置做个GIT入库管理,也把之前积累在机器上的文档,做个汇总. https://github.com/wujuguang/kyvim 1. 安装完整版vim vi和vim的区别?在 ...

  2. Spring源码学习相关记录

    Spring单例实现: protected Object getSingleton(String beanName, boolean allowEarlyReference) { Object sin ...

  3. vim学习相关链接

    1:http://blog.csdn.net/niushuai666/article/details/7275406 2:http://ju.outofmemory.cn/entry/79671 3. ...

  4. Linux系列笔记 - vim相关记录

    一.常用到的vim命令 这里只简单记录常用到的命令,后面会有自己记录的命令,但有些可能不常用. 常规模式: gg 跳到文件头 shift+g 跳到文件尾 行数+gg 跳到指定行 如:123gg 跳到1 ...

  5. [Android学习笔记]理解焦点处理原理的相关记录

    焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...

  6. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  7. VIM学习二: VIM配置代码及效果图

    vim学习及插件 参见:http://www.cnblogs.com/caixu/p/6337926.html .vimrc配置 "***************************** ...

  8. 盘点一下Github上开源的Java面试/学习相关的仓库,看完弄懂薪资至少增加10k

    最近浏览 Github ,收藏了一些还算不错的 Java面试/学习相关的仓库,分享给大家,希望对你有帮助.我暂且按照目前的 Star 数量来排序. 本文由 SnailClimb 整理,如需转载请联系作 ...

  9. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

随机推荐

  1. YII 验证邮箱和QQ号码

    //验证邮箱非空,和邮箱格式                    //验证邮箱非空,和邮箱格式                     array("email","e ...

  2. 我和CPP的第二次约会

    1.变量之间的运算形式依赖于变量的数据类型,如i = i + j;当 i 和 j 是整型或者浮点型,则代表两个数的相加,如果是第一章所说的Sales_item类型,那么就是这两个变量的成分相加(如果书 ...

  3. C#面试-关于const和readonly(看了一个点赞很多的帖子有感而发!)

    前景提要: 最近大家都在面试,讨论最多.最基础的问题,莫过于“关于const和readonly常见的笔试题剖析”,等等的大牛解析.我就是一个小菜,只不过,有点不敢苟同大牛的意见.废话少说,进入重点. ...

  4. NSString 练习

        //将“⽂文艺⻘青年”改成“213⻘青年”.   NSString *str = @"文艺青年";   NSString *str1 = [str stringByRepl ...

  5. 误差逆传播(error BackPropagation, BP)算法推导及向量化表示

    1.前言 看完讲卷积神经网络基础讲得非常好的cs231后总感觉不过瘾,主要原因在于虽然知道了卷积神经网络的计算过程和基本结构,但还是无法透彻理解卷积神经网络的学习过程.于是找来了进阶的教材Notes ...

  6. 【Java】在Eclipse中使用JUnit4进行单元测试(初级篇)

    本文绝大部分内容引自这篇文章: http://www.devx.com/Java/Article/31983/0/page/1 我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能 ...

  7. cf C. Fox and Box Accumulation

    题意:输入一个n,然后输入n个数,问你可以划分多少个序列,序列为:其中一个数为c,在它的前面最多可以有c个数. 思路:先排序,然后对于每一个数逐步的找没有被用过的数,且这个数可以符合条件,然后如果没有 ...

  8. bcb6 中安装 delphi7 的控件包

    其实只要新建一个包,然后把 d7 中的包包含的 pas 文件也包含进去就行了. 同时它会把对应的 bpi 文件也自动包含. 对于 bcb6 中没有的 PosEx 函数可以这样处理,把 d7 中的实现复 ...

  9. 子类化窗口控件的窗口过程(系统级替换,与直接替换控件的WndProc方法不是一回事)

    要说灵活性,自然是比不上Delphi自带的覆盖WndProc,或者替换WndProc方法. unit Unit1; interface uses Windows, Messages, SysUtils ...

  10. Spring的OpenEntityManagerInViewFilter

    在Java Web项目中使用Hibernate经常会遇到LazyInitializationException .这是因为controller和model层(java代码)将通过JPA的一些启用了延迟 ...