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. MBR

    Mbr位于磁盘的0柱面,0磁头,1扇区. MBR       有三部分构成,主引导程序,硬盘分区表DPT和,硬盘的有效标志55AA.在512个字节的主引导扇区里. 主引导程序占446个字节,dpt占6 ...

  2. strcpy实现

    #include <iostream> using namespace std; char *strcpy(char *strDest, const char *strSrc) { if ...

  3. js+dom开发第十六天

    一.css常用标签及页面布局 1.常用标签 position(定位) z-index(定位多层顺序) background(背景) text-align(针对字符自动左右居中) margin(外边距) ...

  4. 内存映射+远线程 调用游戏CALL

    源码中 用到的结构和未公开函数 请到 http://www.cnblogs.com/IMyLife/p/4826286.html 获取 HANDLE ProcessHandle=NULL; DWORD ...

  5. I题 - A+B for Input-Output Practice (VIII)

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description You ...

  6. NSSet与NSArray区别

    NSSet与NSArray区别     NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet  , NSMutableSet类声明编程接口对象,无序的集合, ...

  7. Java 可视化垃圾回收

    基础 当谈到释放不再使用的内存,垃圾回收已经在很大程度上取代了早期技术,比如手动内存管理和引用计数. 这是件好事,因为内存管理令人厌烦,学究式地簿记是计算机擅长的,而不是人擅长的.在这方面,语言的运行 ...

  8. 【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序

    本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作 ...

  9. 【Java】详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...

  10. 零零碎碎搞了一天最后发现是ruby版本问题

    查来查去查不到问题,后来在stackoverflow看到: http://stackoverflow.com/questions/22352838/ruby-gem-install-json-fail ...