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. 缓存淘汰算法---LRU

    1. LRU1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. ...

  2. C# asp:Repeater DataSource List<T>

    1. asp:Repeater 数据源为List<T> 2.页面显示 3.行绑定取值

  3. AST抽象语法树

    抽象语法树简介 (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并 ...

  4. ubuntu wubi安装注意事项

    从这个镜像下载 http://mirrors.163.com/ubuntu-releases/12.10/ ubuntu-12.10-desktop-amd64.iso 和 wubi.exe然后放到同 ...

  5. ExtJS简单的动画效果(ext js淡入淡出特效)

    1.html页面:Application HTML file - index.html <html> <head> <title>ExtJs fadeIn() an ...

  6. Sequence《优先队列》

    Description Given m sequences, each contains n non-negative integer. Now we may select one number fr ...

  7. 快学Scala第一部分

    转载: 1.变量声明 val answer = 8 * 5 + 2; //常量 var counter = 0;    //变量 //在必要的时候 ,可以指定类型 val greeting:Strin ...

  8. cognos启动报错

    [ ERROR ] Content Manager is unable to process your request because an unexpected event occurred in ...

  9. 【HDOJ】2896 病毒侵袭

    AC自动机模板题. #include <iostream> #include <cstdio> #include <cstring> #include <qu ...

  10. Light OJ 1005 - Rooks(DP)

    题目大意: 给你一个N和K要求确定有多少种放法,使得没有两个车在一条线上. N*N的矩阵, 有K个棋子. 题目分析: 我是用DP来写的,关于子结构的考虑是这样的. 假设第n*n的矩阵放k个棋子那么,这 ...