编辑器之神-vim的使用
vim即vi的升级版;在linux中,vi是vim的软链接,我们敲vi和vim出来的都是vim;
纯手打,如有错误,敬请指出。
vi的三种模式及简单使用
vi三种模式
命令模式(默认):是文件的入口,可以实现文件的定位,复制,翻页等;
末行模式:是文件的出口,w write,q quit,wq 写入并保存等;
编辑模式:正常的文字编辑;
三种模式的转换
命令模式—>i,a,o,I,A,O—>编辑模式—>esc—>命令模式
命令模式—>”:”—>末行模式—>esc—>命令模式
vi的简单使用
vi 已有文件:打开已存在的文件;
vi 不存在文件:新建文件;
vi 文件:打开文件,光标在行首;
vi 文件 +:打开文件,文件在末尾;
vi 文件 +行数:打开文件,并且指定行数;
例如:
- vi hello.py # 打开hello文件
- vi hello.py +20 # 打开hello文件并且把光标跳到第20行
- vi hello.py + # 打开hello文件并且光标跳到最后一行
异常处理之交换文件
如果我们在vi编辑文件时,忽然关闭终端,或者异常卡出,就会出现交换文件,用ls -al可查看,存在.swp结尾的交换文件;
出现交换文件后,再一次vi 原来的文件时,就会报错,我们按照提示D删除交换文件即可;
命令模式转编辑模式
命令模式下:
i | 插入光标前一个字符 |
I | 插入行首 |
a | 插入光标后一个字符 |
A | 插入行末 |
o | 向下新开一行,插入行首 |
O | 向上新开一行,插入行首 |
保存退出编辑
在命令模式下保存,shift+z+z
末行模式下:
w | 保存 |
q | 退出 |
wq | 保存退出 |
x | 保存退出 |
q! | 不保存强制退出 |
vim移动,跳转
上下左右移动
命令模式:
k | 上移 |
j | 下移 |
h | 左移 |
l | 右移 |
hjkl控制上下作用
行内移动
命令模式下:
0:到达行首
^:到达行首第一个不是空白字符的位置
$:到达行尾
w:word,往后移一个word
b:back,往前移一个word
行数移动
命令模式下:
gg:快速移动到文件的第一行
G:快速移动到文件最后一行
num gg:快速跳转到指定行
num G:快速跳转到指定行
末行模式下:
:num 回车:在末行模式下跳转到指定行
其中用的最多的还是num G
上下翻页
Ctrl+b:向上翻一页
Ctrl+f:向下翻一页
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
H:跳转到屏幕顶部
M:跳转到屏幕中间
L:跳转到屏幕底部
注意HML跳转的是屏幕,不是文件
其他跳转
{: 按段移动,上移
}: 按段移动,下移
%:移到括号的左右边
复制,粘贴,删除(剪切)
复制粘贴
命令模式下:
y:和移动命令一起使用,复制
yy:复制一行,支持nyy复制多行
p 粘贴
删除(剪切)
命令模式下:
x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace
dd: 剪切光标所在行,n dd 删除指定的行数
d:和移动命令配合使用,删除移动命令对应的内容;
D: 删除光标后本行所有内容,包含光标所在字符;
d0: 删除光标前本行所有内容,不包含光标所在字符;
dw: 将光标移到单词首字母,再dw,可删除单词
练习:
- 5x:删除光标及往后五个字符
- v+%+x:删除选中的括号内的内容
- d+6+G:把光标所在行和第六行之间的内容全部删除,所在行能大于6也能小于6
- y+{ +n+G+p:复制从光标往后的一段内容,并跳到指定行进行粘贴
- yy空行+5+p:复制空行,并且粘贴5个空行
复制删除总结和扩展
d和x在vi中看起来是删除操作,但本质上其实是剪切操作,剪切后会将内容存放在和剪切板功能相同的缓冲区;
同样,复制其实也是将内容放在缓冲区;
注意,在其他图形界面复制的内容在vi中不能直接通过p进行粘贴,需要右键粘贴,因为剪切板和缓冲区不是同一个;
可视模式(选中文本)
在命令模式下,
v,可视模式,从光标选中位置,开始向上向下选中文本,选中的位置,是原来光标的位置;
V,可视行模式,从光标选中行开始,向上或向下选中光标所经过的每一行;
Ctrl+v,可视块模式,垂直方向选中文本,和sublime的ctrl很像,具体可自己实验;
可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动
可视模式还可以和段落移动等结合使用,例如:
V+G,表示选中从当前行一直到末行
V+gg,表示选中从当前行到文件首行,
V+{,
V+},
v+%,括号等等。
替换和查找
小幅替换
命令模式下:
r:将光标下的字符进行替换;例如,r+H:将那个光标下的字符替换成H
R: 替换当前行光标后的字符;例如,hello单词首字母,R+world:将hello单词替换成world;
全局替换
末行模式下,
固定格式:%s///g
格式:%s/旧文本/新文本/g
例如:
把python全部替换成world:%s/python/world/g
将第一行至第10行之间的abc替换成123:1, 10s/abc/123/g
可视区域替换
先用可视模式选中要替换的范围,再进入末行模式进行替换
格式:s/旧文本/新文本/g
V+向下移动光标到第11行+:进入末行模式+s/world/python/g:将当前行到第11行的所有world替换成python
确认替换
格式:%s/旧文本/新文本/gc
会查找出全部的旧文本,然后逐个的让你来确认是否替换,替换y,不替换n,替换所有a,不想替换了就q
查找
命令模式下:
/+str:查找指定字符串
n:查找下一个被高亮的字符串
N:查找上一个被高亮的字符串
单词快速匹配:
*:向后查找当前光标所在单词
#:向前查找当前光标所在单词
不想高亮,可以查找一个不存在的单词即可
其他必知必会
撤销反撤销
命令模式下:
u 撤销
ctl+r 反撤销
文本行移动(缩排)
命令模式下:
>>: 文本行右移
<<: 文本行左移
练习:
- V+向下三行+>:将选中的三行向右缩进四个空格,同理,左缩进也是
- V+向下三行+>+.+.:将选中的三行向右缩进四个空格后,再右移四格,再右移四格,即一个点就重复执行一次
重复执行
命令模式下:
.: 重复上一次操作的命令
标记
当我们在开发时,如果有某一行需要稍后再来处理,可以先对它进行标记,后面需要处理时再进行快速跳转
标记:m+x (x属于[a-z][A-Z])
跳转:'+x
可以分别标记多行为多个别名,再跳转;
如果给多行用了同一个别名,那么别名指向的是最新的一行
vim里执行 shell 下命令
末行模式里输入!,后面跟命令
末行命令扩展
e .:浏览当前目录下的所有文件
e 文件名:切换编辑文件
n 文件名:新建并编辑文件
w 文件名:如果原来没有文件,就创建新文件并将源文件的内容写入新文件,但编辑的还是源文件
切换文件之前,必须保存原来编写的文件
末行模式下w命令的作用讲解:
在实际开发时,用来起阶段性备份的作用,和git的作用类似
分屏命令
末行模式下,
sp:横向分屏
vsp:纵向分屏
切换窗口:Ctrl+w,w
互换窗口:r
关闭当前窗口:c,但是不能关闭最后一个窗口
退出当前窗口:q,能退出最后一个窗口
关闭其他窗口:o
练习
1.连续打出十个*
命令模式,10+i+*+esc;后面也可以加.,重复执行;
8+i+print("hello world")+enter+esc:重复8行代码;
但建议在进入编辑模式之前,不要按数字,不然按了数字编辑了又esc了,就发现辛苦敲得代码粘贴了很多。
2.给多行代码添加注释
命令模式,将光标移动到要注释的第一行,^移动到行首,
Ctrl+v进入可视块模式,向下选中多行要注释的代码,
I进入编辑模式,在行首添加#,esc。
编辑器之神-vim的使用的更多相关文章
- 优测优社区干货精选|老司机乱谈编辑器之神——vim
文 / 腾讯 吴双 前言 优测小优 有话说: 腾讯优测只有应用测试大神?不不不,我们还有各种研发大牛! *** vim 是一种信仰,我自从2004年有了这个信仰,已经12个年头了.本文介绍了学习vim ...
- Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门
距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...
- 随处可编辑的编辑器之神VIM
据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...
- 编辑器之神VIM 总结(一) 基础部分
版本号 说明 作者 日期 1.0 vim基础知识 Sky Wang 2013/06/19 概要 vim和emacs,一个是编辑器之神,一个是神一样的编辑器.他们被称是UNIX系统下的 ...
- 工欲善其事:编辑器之神Vim(一)
本篇文章收集了Vim最常用和实用的一些命令,掌握这些命令就可以使用Vim了 本文仅列举个人认为常用的命令,本系列文章更像是自己的学习笔记,而不是VIM使用教程. 如果你想了解vim的更多,可以看看Co ...
- 4-2 编辑器之神--vim
vim vi:Visual editor文本编辑器 文本:ascii,Unicode vim:VIsual editor iMproved 官网:www.vim.org 帮助网站:Vimhelp.or ...
- 编辑器之神---vim
1. 不是在命令模式下时:yy -----复制光标所在的这一行 p ----粘贴 dd -----剪切光标所在的行 D ---从当前的光标开始剪切,一直到行 ...
- 编辑器之神vim的一些常用快捷键整理
yy:复制 光标所在的这一行 4yy:复制 光标所在行开始向下的4行 p:粘贴 dd:剪切(删除) 光标所在的这一行 4dd:剪切(删除) 光标所在行向下的4行 D:从当前的光标开始向后剪切,一直到行 ...
- Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好?
Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好? 在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神. 一些人勇敢地拾起了Vim或Emacs,却发 ...
随机推荐
- 在keil中添加stc系列单片机型号(模型)方法
1.下载安装stc-isp烧录软件: 官网:http://www.gxwmcu.com/ 2.打开使用stc-isp软件,并导入stc官方器件库: 注意:一定要找到包含有C51和UV4的文件夹 3.显 ...
- SVN简介与安装
SVN 简介: Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库(repository) 中. 这 ...
- windowns10安装httpd
下载页面:https://www.apachehaus.com/cgi-bin/download.plx 下载内容:httpd-2.4.38-o102r-x64-vc14-r2.zip 解压到本地磁盘 ...
- Chrome内核浏览器打开网页报 错误代码: ERR_TIMED_OUT
升级win10之后如果出现chrome内核的浏览器网页总是打不开 打开很慢 而ie和edge是可以正常访问的 用这个方法可以 我弄了几天终于 搞好了我直接转载过来了近期,工程师收到大量反馈360浏 ...
- SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确
最近在查询SQL时遇到SQL文件错误,可能是文件数据已损坏.解决过程分享给大家. 问题描述 消息 824,级别 24,状态 2,第 1 行SQL Server 检测到基于一致性的逻辑 I/O 错误 p ...
- Go基础(2)
demo1: package main import ( "fmt" "strings" ) func main() { url := pathToUrl(&q ...
- springboot集合jpa使用
现目前java中用较多的数据库操作框架主要有:ibatis,mybatis,hibernate:今天分享的是jpa框架,在springboot框架中能够很快并方便的使用它,就我个人而言觉得如果是做业务 ...
- HttpUtil 【判断网络连接的封装类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 该封装类主要包括以下功能: 判断是否有网络连接.判断是否有可用的网络连接: 判断是否是3G网络.判断mobile网络是否可用: 判断 ...
- 系列文章|OKR与敏捷(二):实现全栈敏捷
OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...
- 解读 kubernetes client-go 官方 examples - Part Ⅰ
目录 1. 介绍 2. 运行测试 2.1 测试环境 2.2 运行结果 3. 原理解析 3.1 获取 kubeconfig 信息,并构造 rest#Config 实例 3.1.1 tools/clien ...