36.Vim笔记
1、简介
$vim [filename]
vim有三种操作模式,分别称为编辑模式、插入模式和命令模式
2、编辑模式
vim编辑模式的主要用途是在被编辑的文件中移动光标的位置。一旦光标移动到所要的位置,就可以进行剪切和粘贴正文,删除正文和插入新的正文。
3、跳转
k 上移
j 下移
h 左移
l 右移
ctrl + f 在文件中前移一页【page down】
ctrl + b 在文件中后移一页【page up】
更大范围的移动:
* 当光标停留在一个单词上,*键会在文件内搜索该单词,并跳转到下一处
# 当光标停留在一个单词上 ,#在文件内搜索该单词,该跳转到上一处
(/) 移动到 前 / 后 句的开始
{/} 移动到 当前 / 下一个段落开始
g_ 到本行最后一个不是blank 字符的位置
fa 到下一个a的字符处,你也可以fs到下一个为s的字符
t, 到逗号前的第一个字符。逗号可以变成其他字符
3fa 在当前行查找第三个出现的a
F/T 和 f 和 t 一样,只不过是相反方向
gg 将光标定位到文件第一行起始位置
G 将光标定位的文件最后一行
NG或Ngg 将光标定位到第 N 行的起始位置
【上面的笔记忽略吧,相当于一本字典】
第一阶段:存活
x -> 删除当前光标所在的一个字符
:wq -> 存盘 + 退出 (:w 存盘,:q 退出) :w后可以跟文件名
dd -> 删除当前行,并把删除的行存到剪切板里
p -> 粘贴剪切板
推荐:
· hjkl 使用这四个作为移动光标的按键
· :help 显示相关命令的帮助。你也可以就输入 :help 而不拼接命令,退出help的时候要使用 :q -----------------------------------------------------------------------------------
第二阶段:感觉良好
1、各种插入模式
·a -> 在光标后插入
·o -> 在当前行后插入一个新行
·O(大写O) -> 在当前行前插入一个新行
·cw -> 替换从光标所在位置后到一个单词结尾的字符
2、简单的移动光标
·0(数字0) -> 数字零,到行头
·^ -> 到本行第一个不是blank字符的位置(所谓的blank就是空格,tab,回车,换行)
·$ -> 到本行行尾
·g_ -> 到本行最后一个不为blank字符的位置
·/pattern -> 搜索pattern的字符串(如果搜索出多个匹配,可以按 n 键到下一个)
3、复制和粘贴(p/P都是可以的,p表示当前位置之后,P表示当前位置之前)
·p -> 粘贴
·yy -> 复制当前行
4、Undo、Redo
·u -> 撤销上一步
·ctrl + r -> 撤销上一步的撤销
5、打开、保存、退出、改变文件
·:e <path/to/file> -> 打开一个文件
·:w -> 存盘
·:saveas <path/to/file> -> 另存为<path/to/file>
·:x, ZZ或:wq -> 保存并退出
·:q! -> 退出不保存; :qa!强行退出所有的正在编辑的文件,就算别的文件有所更改。
·:bn 和 :bp -> 你可以同时打开打开很多文件,使用这两个命令切换下一个或上一个文件
第三阶段,更好,更强,更快
1、更好
·. -> (小数点)重复上一次
·N -> 重复某个命令N次
栗子
2dd -> 删除2行
3p -> 粘贴3次
2、更强
【接下来这个可以极大的提高工作效率】
· NG -> 到第N行 (其实可以直接使用:N,然后到达第几行)
· gg -> 到达第一行 相当于1G 或 :1
· G -> 到达最后一行
· 按单词移动
w -> 到下一个单词的开头
e -> 到下一个单词的结尾
(注释:
> 如果你认为单词是由默认方式,那就用小写的w和e。默认下一个单词由字母,数字和下划线组成的
> 如果你认为单词是有blank字符分隔符,那么就是使用大写 W 和 E
)
【最强移动光标】:
· % -> 匹配括号移动,包含(,{,[
· * 和 # -> 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
3、更快
·你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令联动,很多命令都可以根据如下:
例如:0y$命令意味着
·0 -> 先到行头
·y -> 从这里开始拷贝
·$ -> 拷贝到本行最后一个字符
也可以试试ye,从当前位置拷贝到本单词的最后一个字符
也可以试试输入y2/foo来拷贝2个‘foo’之间的字符串
·d(删除)
·v(可视化的选择)
·gU(变大写)
·gu(变小写)
·等等
(标注:可视化选择-> 先按v,然后移动光标,你应该看到文本被选择,然后,可以使用d,y,)
第四阶段:vim超能力
1、【在当前行上移动光标:0 ^ $ f F t T , ; 】
0 -> 到行头
^ -> 到本行的第一个非blank字符
$ -> 到行尾
g_ -> 到本行最后一个不是blank字符的位置
fa -> 到下一个为a的字符处,你也可以fs到下一个为s的字符
t, -> 到逗号前的第一个字符。逗号可以变成其他字符
T, -> 到逗号后的第一个字符。
3fa -> 查找第三个出现的a
F 和 T -> 和f和t一样,只不过是相反方向
dt -> 删除所有内容 !!!!!!!!!!!! 慎用
2、区域选择a
36.Vim笔记的更多相关文章
- vim笔记2
用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能.这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好 零 学会盲打 壹 配置文件先从最简开始,在 ...
- Vim笔记
复制多行: v 可视化,选择多行,然后yy复制.
- vim 笔记
1.替换 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :%s/vivian/sky/(等同于 : ...
- java核心技术36讲笔记
Java-Basic 谈谈final. finally. finalize有什么不同? 典型回答: final可以用来修饰类.方法.变量,分别有不同的意义, final修饰的class代表不可以继承扩 ...
- vim 学习笔记系列(前言)
今天上午的时候,看到大神在用vim编程,画面直观,速度很快,操作只需要用命令符就可以实施. 所以可以推断vim的命令符是复杂的,那么学习过程中记忆会很漫长,很痛苦,但是如果记住了这些命令符,并可以熟练 ...
- 18、Apache服务器
-- web 服务器 survey.netcraft.net --此网站会有每月份的世界上网站使用的WEB服务器的使用率统计 www.apache.org apache a ...
- MySQL简介及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...
- 源码编译配置lnmp部署zabbix
环境说明: [root@wcy ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@wcy ~]# uname -a Linux ...
- PHP基础知识学习总结
从今天开始过一遍PHP的基础知识 加油 地址:http://www.runoob.com/php/php-mail.html 该看:PHP发送电子邮件 2017年5月23日23:38:30 ...
- Centos6.5 下安装配置Apache+PHP+Mysql环境
1.准备工作 # yum -y update && yum -y install vim make cmake gcc gcc-c++ bison bison-devel ncurse ...
随机推荐
- spider_爬取斗图啦所有表情包(图片保存)
"""爬取斗图吧里面的所有表情包知识点总结: 一.使用requests库进行爬取,随机请求头(网站反爬措施少.挂个请求头足矣) 二.具体思路: 1.先爬取所有的图片url ...
- JavaWeb 下载Demo
JavaWeb 继承 Httpservlet 类实现文件下载的功能 package com.gen; import javax.servlet.ServletException; import jav ...
- 使用win10 wsl中的Debian编译lean 的 lede
安装Debian发行版 启用windows 适用于linux 的 windows子系统 安装Debian 参考p3terx的文章把debian装到非系统盘上: https://p3terx.com/a ...
- Vue.js的使用经验
Vue.js的使用经验 Vue.js的意义 解耦了视图与数据 可复用的组件 前端路由 状态管理 虚拟DOM Vue提供了很多实例属性与方法,都以$开头 $el可以访问挂载Vue实例的元素. $se ...
- NEO4J入门基础第二章
1.简单导入CSV数据 Load CSV读取但不存入数据库: 查看前CSV文件行数 LOAD CSV FROM "file-url" AS line RETURN count(*) ...
- 小白之Python-基础中的基础04
继续.. ------------------------华丽的分界线----------------------------- Python-基础中的基础04 --之方法 格式:对象.方法() 1. ...
- css可继承与不可继承的属性
一.可继承性的属性 字体相关的:font-size/font-family/font-weight/font-style/font-variant/font-stretch 文本相关的:color/t ...
- 用swift开发framework时采用OC混编的解决方案
随着swift ABI的稳定,越来越多的开发者开始使用swift语言开发项目,但是由于大部分工具库也还是使用OC写的,因此我们不得不需要在项目中采用swift与oc混编. 在开发app项目时,swif ...
- 51电子-STC89C51开发板:目录
51电子(我要电子:www.51dz.com),是国内最早一批的电子类相关网站,在深圳有实体店. 这个系列文章以 STC89C51 来做笔记,讲解使用过程. --------------------- ...
- 关于github的自动化检测
github 中的 Some checks were not successful什么意思呢? 在 GitHub 上,当您向存储库提交拉取请求时,如果存在自动化的检查(例如CI/CD)或在 pul ...