vim 学习相关记录
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 学习相关记录的更多相关文章
- VIM配置相关记录
把一直使用中的vim配置做个GIT入库管理,也把之前积累在机器上的文档,做个汇总. https://github.com/wujuguang/kyvim 1. 安装完整版vim vi和vim的区别?在 ...
- Spring源码学习相关记录
Spring单例实现: protected Object getSingleton(String beanName, boolean allowEarlyReference) { Object sin ...
- vim学习相关链接
1:http://blog.csdn.net/niushuai666/article/details/7275406 2:http://ju.outofmemory.cn/entry/79671 3. ...
- Linux系列笔记 - vim相关记录
一.常用到的vim命令 这里只简单记录常用到的命令,后面会有自己记录的命令,但有些可能不常用. 常规模式: gg 跳到文件头 shift+g 跳到文件尾 行数+gg 跳到指定行 如:123gg 跳到1 ...
- [Android学习笔记]理解焦点处理原理的相关记录
焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...
- vim学习、各类插件配置与安装
vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...
- VIM学习二: VIM配置代码及效果图
vim学习及插件 参见:http://www.cnblogs.com/caixu/p/6337926.html .vimrc配置 "***************************** ...
- 盘点一下Github上开源的Java面试/学习相关的仓库,看完弄懂薪资至少增加10k
最近浏览 Github ,收藏了一些还算不错的 Java面试/学习相关的仓库,分享给大家,希望对你有帮助.我暂且按照目前的 Star 数量来排序. 本文由 SnailClimb 整理,如需转载请联系作 ...
- vim学习、各类插件配置与安装【转】
转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...
随机推荐
- MBR
Mbr位于磁盘的0柱面,0磁头,1扇区. MBR 有三部分构成,主引导程序,硬盘分区表DPT和,硬盘的有效标志55AA.在512个字节的主引导扇区里. 主引导程序占446个字节,dpt占6 ...
- strcpy实现
#include <iostream> using namespace std; char *strcpy(char *strDest, const char *strSrc) { if ...
- js+dom开发第十六天
一.css常用标签及页面布局 1.常用标签 position(定位) z-index(定位多层顺序) background(背景) text-align(针对字符自动左右居中) margin(外边距) ...
- 内存映射+远线程 调用游戏CALL
源码中 用到的结构和未公开函数 请到 http://www.cnblogs.com/IMyLife/p/4826286.html 获取 HANDLE ProcessHandle=NULL; DWORD ...
- I题 - A+B for Input-Output Practice (VIII)
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description You ...
- NSSet与NSArray区别
NSSet与NSArray区别 NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet , NSMutableSet类声明编程接口对象,无序的集合, ...
- Java 可视化垃圾回收
基础 当谈到释放不再使用的内存,垃圾回收已经在很大程度上取代了早期技术,比如手动内存管理和引用计数. 这是件好事,因为内存管理令人厌烦,学究式地簿记是计算机擅长的,而不是人擅长的.在这方面,语言的运行 ...
- 【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序
本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作 ...
- 【Java】详解Java解析XML的四种方法
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...
- 零零碎碎搞了一天最后发现是ruby版本问题
查来查去查不到问题,后来在stackoverflow看到: http://stackoverflow.com/questions/22352838/ruby-gem-install-json-fail ...