仅记录一些自己最经常使用的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 :打开文件,并将光 ...
随机推荐
-
我的git学习
当遇到不想commit的,而status已经现实出来了,可以使用 git rm -r --cached "fine name or 文件夹" 出现 Git – fatal: U ...
-
iOS开发——UI篇Swift篇&;UIImageView
UIImageView override func viewDidLoad() { super.viewDidLoad() titleLabel.text = titleString //通过坐标和大 ...
-
初步swift语言学习笔记9(OC与Swift杂)
笔者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...
-
Asp.Net Identity自定义user类的运用,ClaimsIdentity
mvc5自动生成的用户验证是比较好用的,还可以扩展,可是要求code first,目前使用sqlite,支持entity framework,但不支持code first. 只有自已简单模仿一下了.经 ...
-
BZOJ 1828
program bzoj1828; ; check=; type node=record l,r,s,a:longint; end; ..maxn*] of node; a,b,c:..maxn] o ...
-
《JavaScript设计模式与开发实践》读书笔记之享元模式
1. 享元模式 享元模式是一种用于性能优化的模式,享元模式的核心是运用共享技术来有效支持大量细粒度的对象 1.1 传统的文件上传方法 以文件上传为例,文件上传功能可以选择依照队列,一个一个的排队上传, ...
-
【DOS】这个命令太牛逼了
删除一个程序了后 竟然上不了网了 运行下列命令重启后就可以了 实在是救了我系统一命 命令如下: netsh winsock reset
-
vue 学习笔记1
1.子组件在父组件的原生的事件例如一个child子组件的点击事件<child @click="handleClick">点击</child>这种情况在父组件 ...
-
K8S学习心得 == 安装虚拟路由器RouterOS
使用RouterOS, 搭建虚拟路由器,并且配置多个网关互通.配置步骤如下. 基础配置 1. RouterOS 服务器,设置如下 2. VM 不同网段的设置 == 192. ...
-
django_models后台管理myarya
arya重点代码 # urls.py from django.urls import path,re_path,include from arya.service import v1 urlpatte ...