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练级攻略>,进阶 ...
随机推荐
- php基于数组的分页实现
关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页 ...
- 如何正确的使用uwsgi
简单的安装过程可以在这里找到,这里主要说一下如何配置uwsgi的服务,将uwsgi服务加入系统进程,你可以使用如下两种方式安装 apt-get apt-get install uwsgi 该命令会自动 ...
- JVM系列五:JVM监测&工具
JVM系列五:JVM监测&工具[整理中] http://www.cnblogs.com/redcreen/archive/2011/05/09/2040977.html 前几篇篇文章介绍了介 ...
- C 和 OC 字符串转换 NSString 和 char * 转换 const char* 与 char *
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { char *s = "He ...
- delphi XML 原来可以玩接口
以下代码旨在 脱离TXMLDocument 操作 xml unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Class ...
- TControl的显示函数(5个非虚函数,4个虚函数)和三个例子的执行过程(包括SetParent的例子)
// 9个显示函数 procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; // 虚函数,important 根据父控 ...
- 分页SQL模板
select * from ( select rownum as rn ,a.* from ( select * from page a where object_id >1000 and ow ...
- AJAX 中Sys.WebForms.PageRequestManager的事件激发顺序 《转》
AJAX 中Sys.WebForms.PageRequestManager的事件激发顺序 测试代码: 测试代码如下: <%@ Page Language="C#" AutoE ...
- 通过redis-rdb-tools分析redis内存使用量
背景:生产上一台redis服务器,物理内存32G,几个项目都在用,经常不足一月内存就会耗尽,然后开始使用swap,当swap也用尽的时候,系统就宕机.redis配置也优化过几次,但未见成效.因此决定看 ...
- 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: 栅栏密码.给定N(N<=10),密钥为一个N*N的矩阵,'.'代表空格可以看到,'X'代表被遮挡,还有密 ...