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 :打开文件,并将光 ...
随机推荐
- python __slots__ 详解(上篇)
转自:http://blog.csdn.net/sxingming/article/details/52892640 python中的new-style class要求继承Python中的一个内建类型 ...
- 关于c++11中static类对象构造函数线程安全的验证
在c++11中,static静态类对象在执行构造函数进行初始化的过程是线程安全的,有了这个特征,我们可以自己动手轻松的实现单例类,关于如何实现线程安全的单例类,请查看c++:自己动手实现线程安全的c+ ...
- 【DVWA】【SQL Injection】SQL注入 Low Medium High Impossible
1.初级篇 low.php 先看源码,取得的参数直接放到sql语句中执行 if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQ ...
- 对vuex的一点理解
vuex是vue.js的一个状态管理工具,它适用于解决平行组件之间的数据共享问题.一般情况下,我们更多的是父子组件之间通过props或$emit来实现传值,如何不满足以上情况那只有使用vuex进行解决 ...
- Oracle的shutdown命令
oracle的shutdown命令用来关闭当前实例,有4个可选参数:normal.transactional.immediate和abort.不带参数时默认是normal.这几个参数的差异体现在以下几 ...
- linux(Ubuntu16)下切换python2和python3(转)
采用update-alternatives 切换版本 1.打开终端:Ctrl+Alt+T 2.查看update-alternatives的帮助信息:update-alternatives --help ...
- Linux学习笔记记录(二)
- hdu 1166敌兵布阵(线段树入门题)
>>点击进入原题测试<< 思路:这两天在学线段树,这个题直接手敲一下线段树就行了,都没有用上懒人标记.入门题 cin,cout会超时,记得加std::ios::sync_wit ...
- Maven_真的需要吗?
1.真的需要吗? Maven 是干什么用的?这是很多同学在刚开始接触 Maven 时最大的问题.之所以会提出这个问题,是因为即使不使用 Maven 我们仍然可以进行 B/S 结构项目的开发.从表述层. ...
- 【10】AngularJS SQL
AngularJS SQL 使用 PHP 从 MySQL 中获取数据 <div ng-app="myApp" ng-controller="customersCtr ...