vim学习笔记(1)——vim操作
仅记录一些自己最经常使用的vim操作。随时更新
文本操作
- d 剪切。双击剪切一行
- y 复制,双击复制一行
p 粘贴
x 删除当前光标下字符
r 替换当前光标字符。后面接替换的字符
:s/old/new/g 全局替换old为new
移动
- 0 移动到开头
- $ 移动到结尾
- w 移动到下一个单词开头
e 移动到下一个单词结尾
fx 移动到本行之后第一个出现x字母的位置
tx 移动到本行之后第一个出现x字母的前一个位置
gg 跳到文件首
- G 跳到文件尾
NG 移动到第N行,或者用:N也可
{ 上一段。}下一段
% 跳到匹配的括号处
ctrl+o 上一个位置
- ctrl+i 下一个位置
文本移动和操作相互配合使用。比方d$+enter删除到行末,dw删除至下一个单词,2dd删除接下来两行
也能够和数字相互使用,比方y+enter5,复制下面5行,:1,20d+enter删除1~20行
模式切换
插入模式
- i 进入插入模式。当前插入光标位置插入
- a 进入插入模式,下一个光标位置插入
- o 进入插入模式,在当前行下一行插入
- O 进入插入模式。在当前行上一行插入
可配置vim成鼠标光标定位模式
可视化模式
- :v 进入可视化模式
替换模式
- :R 进入替换模式
使用外部命令
- :! 在!后加入外部命令
查找
- :/ 在/后加入要查找的内容
进入查找时。按n查找下一个,N查找上一个
文件操作
保存文件
- :w 保存
- :saveas filename 另存为
退出
- :q
保存退出vim
vim中保存退出:x和:wq的差别。例如以下:
:wq和ZZ 强制性写入文件并退出(存盘并退出 write%quite)。即使文件没有被改动也强制写入。并更新文件的改动时间。
:x 写入文件并退出。仅当文件被改动时才写入,并更新文件改动时间。否则不会更新文件改动时间。
这两者普通情况下没什么不一样,可是在编程方面,对编辑源文件可能会产生重要影响。由于文件即使没有改动,”:wq”强制更新文件的改动时间。这样会让make编译整个项目时以为文件被改动过了。然后就得又一次编译链接生成可运行文件。
这可能会产生让人误解的后果。当然也产生了不必要的系统资源花销。
操作回退和重做
- u 撤销上一个改动
- U 撤销本行所做的改动过
- ctrl+r 重做操作
其它
- ctrl+g 显示当前文件信息
- ctrl+d 补全命令
參考资料:
vim学习笔记(1)——vim操作的更多相关文章
- vim学习笔记(2)——vim配置
记录vim的配置,随时更新 MacVim 安装: homebrew,安装位置:/usr/local/Cellar brew linkapps macvim--将macvim.app加入到Applica ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- java学习笔记07--日期操作类
java学习笔记07--日期操作类 一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...
- jQuery学习笔记之DOM操作、事件绑定(2)
jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- linux学习笔记:vim程序编辑器—vim的使用
注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...
- vim学习笔记(一)—— vim安装方法
一.完全卸载vim的方法 sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 二.Vim前言——————“世界上只有三种编辑器,EMA ...
- vim学习笔记(10):vim命令大全
进入vim的命令: vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光 ...
随机推荐
- UNICODE本地编译freescale的i.MX6Q的android4.2.2&android4.4.2 && 全志a80的步骤x1
20151031本地编译freescale的i.MX6Q的android4.2.2&android4.4.2 && 全志a80的步骤x1 2015/10/31 15:07 开始 ...
- v形 加强版
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- Apache ab使用指南
Apache ab使用图例: 其中比较重要的两个指标要特别注意: Requests per second:表示平均每秒事务数,相当于LR的TPS Time per second:用户请求平均响应时间和 ...
- HTML——meta
http://www.cnblogs.com/jr1993/p/4542862.html
- Fiddler—重复发送一个请求的设置
https://jingyan.baidu.com/article/b2c186c829a85dc46ff6ff60.html 选中一个request——>Reissue Sequentaill ...
- Windows开启ICMP包回显
- dutacm.club_1085_Water Problem_(矩阵快速幂)
1085: Water Problem Time Limit:3000/1000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Othe ...
- Jmeter的属性和变量
jmeter的属性和变量可以简单理解为编程里面的全局变量和局部变量.属性是全局可见,可以跨线程组传递调用,而变量基本上只能存在于一个线程组中(在测试计划定义的变量也是可以跨线程组传递的).同线程组内的 ...
- CAD如何直接打印,不出现打印对话框?
主要用到函数说明: MxDrawXCustomFunction::Mx_Print 直接打印,不出现打印对话框,详细说明如下: 参数 说明 double ptLBx 打印的范围左下角x double ...
- 牛客多校Round 9
Solved:1 rank:112 E. Music Game 题解说有个非简化的原题 bzoj4318 #include <bits/stdc++.h> using namespace ...