vim复制,粘贴,删除,撤销,替换,光标移动等用法
我接触linux的时候,用的是nano这个文本编辑器,个人觉得他的最大优点就是方便,快速。打开文件,修改文件,到退出都十分的快速,简单。这一点上比vi,vim要强,但是nano不能显示彩色字,不能进行整行删除,编辑各种配置文件的时候,总感觉不是很方便。针对于nano的这些缺点,vim可以很好的解决,并且vim打开文件,里面的字是有颜色的,这一点根editplus,eclipse是一样的,对于做程序的来说,就比较爽了。下面的操作,都是命令状态下进行的,不要进入插入状态了,如果进入了插入状态,[Esc]退出输入状态
一,光标移动
大家不要觉得光标移动不重要,其实它是基础,更好的光标移动,复制,粘贴,删除等才能更加的得心应手,进入了编辑器里面后,鼠标就不能用了。
| 光标移动 | |
|---|---|
| h 或 向左箭头键(←)
20h或者20(←) |
光标向左移动一个字符
光标向左移动20个字符, |
| j 或 向下箭头键(↓)
20j或者20(↓) |
光标向下移动一行
光标向下移动20行, |
| k 或 向上箭头键(↑)
20k或者20(↑) |
光标向上移动一行
光标向上移动20行, |
| l 或 向右箭头键(→)
20l或者20(→) |
光标向右移动一个字符
光标向右移动20字符, |
在这里要注意一点的是,不要用小键盘输入数字,不然就会直接输入模式了.个人觉得掌握上面的这些,基本上能满足我们对光标移动的要求了,看下图
vim 我们可以根据编辑器右下角的数字来判断,我们要跳转到哪一行,如果想更精确的话,:set nu 设置一下环境变量,让它显示行号是最好的 |
|
| Ctrl + f | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
| Ctrl + b | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
| Ctrl + d | 屏幕『向下』移动半页 |
| Ctrl + u | 屏幕『向上』移动半页 |
| Ctrl + e | 屏幕『向下』移动一行 |
| Ctrl + y | 屏幕『向上』移动一行 |
| + | 光标移动到非空格符的下一列 |
| - | 光标移动到非空格符的上一列 |
| n<space> | 那个 n 表示『数字』,按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。 |
| n<Enter> | n 为数字。光标向下移动 n 行(常用) |
| 0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
| $ 或功能键[End] | 移动到这一行的最后面字符处(常用),这里的$在正则里面表示是结尾的意思,这样理解一下就能记住 |
| H | 光标移动到这个屏幕的最上方那一行的第一个字符,H你就把它记成是header的缩写,这样就好记了 |
| M | 光标移动到这个屏幕的中夬那一行的第一个字符,M你就把它记成middle的缩写 |
| L | 光标移动到这个屏幕的最下方那一行的第一个字符,L你就把它记成last的缩写 |
| G | 移动到这个档案的最后一行(常用) |
| nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行 |
| gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
二,删除,复制,粘贴,撤销
| 删除,复制,粘贴,撤销 | |
|---|---|
| x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
| nx
nX |
n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除光标后 10 个字符, 『10x』。
n 为数字,连续删除光标前面的 n 个字符。举例来说,我要连续删除光标前的 10 个字符, 『10X』。 |
| dd
yy |
删除光标所在的那一整行(常用),
复制光标所在的那一行(常用) |
| ndd
nyy |
n 为数字。删除光标所在行向下 n 行,例如 20dd 则是删除 20 行(常用)
n 为数字。复制光标所在行向下 n 行,例如 20yy 则是复制 20 行(常用) |
| d1G
y1G |
删除光标所在行到第一行的所有数据
复制光标所在行到第一行的所有数据 |
| dG
yG |
删除光标所在行到最后一行的所有数据
复制光标所在行到最后一行的所有数据 |
| d$
y$ |
删除光标所在处,到该行的最后一个字符
复制光标所在的那个字符到该行行尾的所有数据 |
| d0
y0 |
那个是数字的 0 ,删除光标所在处,到该行的最前面一个字符
复制光标所在的那个字符到该行行首的所有数据 |
| p, P | p将复制的数据,粘贴在光标的下一行,P将复制的数据,粘贴到光标的上一行 |
| J | 将光标所在行不下一行的数据结合成同一行 |
| c | 重复删除多个数据,可以通过上下键来决定删除光标上面的,还是下面的 |
| u | 撤销。(常用) |
| Ctrl + r | 撤销的撤销。(常用) |
三,区块选择,查找,替换
| 区块选择,查找,替换 | |
|---|---|
| v | 字符选择,会将光标经过的地方反白选择! |
| V | 行选择,会将光标经过的行反白选择! |
| Ctrl + v | 区块选择,可以用长方形的方式选择资料 |
| y | 将反白的地方复制起来 |
| d | 将反白的地方删除掉 |
v或者V |
ctrl+v |
| 从上面可以看出,v和V主要的是进行,行选择,而Ctrl+v是进行的列选择,从灵活性上来说,ctrl+v更加的灵活一点。 | |
| /string
?string |
向光标之下寻找一个名称为string字符串
向光标之上寻找一个名称为string字符串 |
| n
N |
正向查找,搜索出的string,可以理解成next
反向查找,搜索出的string,可以理解成Not next |
find |
为了说明,n和N的区别,作了个例子,看左图,左图是搜索ddd所产生的结果,黄底黑字就是搜索的结果,这个时候,我们可以按n或者N,在这4个搜索区块内,进行切换.
n的顺序是12341234 N的顺序是43214321 总之一句话,n是从上到下,N是从下到上 |
| :n1,n2s/string1/string2/g | 这里的n1是查找的开始行数,n2是查找结束的行数。【:2,7s/ddd/fff/g】在第2行,第7行之间,将ddd替换成fff |
| :1,$s/string1/string2/g | 从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !(常用) |
| :1,$s/string1/string2/gc | 从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !且在替换前显示提示字符给用户确认 (confirm) 是否需要替换!(常用) |
四,保存,退出,环境变量
| 保存,退出,环境变量 | |
|---|---|
| :w
:w! |
将编辑的数据写入硬盘档案中(常用)
若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! |
| :q
:q! |
离开 vi (常用)
若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 |
| :wq
:wq! |
储存后离开
强制储存后离开 |
| ZZ | 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开! |
| :w [filename] | 另存为 |
| :r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到光标所在行后面 |
| :! command | 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如 『:! cat ./test』即可在 vi 当中察看当前文件夹中的test文件中的内容 |
| i,I,a,A,o,O,r,R | 进入插入模式,虽然有不同之处,感觉差别不大,就放在一起了 |
| Esc | 退出插入模式,进入命令模式 |
| :set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号,这一点,非常有用,当我们修改配置文件的时候,能知道多少行,就方便多了。 |
| :set nonu | 与 set nu 相反,取消行号 |
五,小结
个人觉得,上面的操作能满足,80%--90%的人的需要,如果对多文件进行操作,我想各种开发工具,要比vim更加的方便.
六,vim编辑后,发现没有权限保存
在vi/vim编辑器进入冒号,然后输入以下命令 %! sudo tee % > /dev/null

- 2
此时会提示输入sudo用户的密码

- 3
如果切换成功后,会提示以下信息,此时,输入大写L键

- 4
文件保存成功后,直接输入:q就可以退出
vim复制,粘贴,删除,撤销,替换,光标移动等用法的更多相关文章
- 一文搞懂vim复制粘贴
转载自本人独立博客https://liushiming.cn/2020/01/18/copy-and-paste-in-vim/ 概述 复制粘贴是文本编辑最常用的功能,但是在vim中复制粘贴还是有点麻 ...
- VIM复制粘贴大全!
原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...
- VIM复制粘贴大全[转]
用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽:上次论坛上有人问到了怎么在vim中使 ...
- vim 复制 单个 单词: 移动光标到单词词首,快速摁 yw
vim 复制 单个 单词: 移动光标到单词词首,快速摁 yw
- Vim 下的复制/粘贴/剪切/撤销
一 了解 vim 有 12 个粘贴板,分别是 0.1.2.....9.a.“.+:用 :reg 命令可以查看各个粘贴板里的内容.在 vim 中简单用 y 命令只是复制到 "(双引号)粘贴板里 ...
- vim复制粘贴常用命令
在Windows下我们习惯的操作,复制单个字符,复制单行多行,删除单行多行,在linux的vim中操作如下: G(shift+g+g):跳到文档尾 g+g:跳转到文档首 home键:光标移动到行首 e ...
- [转]Vim 复制粘贴探秘
Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情.每当学会了vim的一个新功能,就会很大地提高工作效率.有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim ...
- vi/vim复制粘贴命
1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下: y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用: ...
- vi/vim复制粘贴命令
1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下: y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用: ...
随机推荐
- LFU缓存
https://leetcode-cn.com/problems/lfu-cache/description/ 缓存的实现可以采取多种策略,不同策略优点的评估就是"命中率".好的策 ...
- 第一次使用Mac
Mac禁用掉默认输入法 搜狗输入法已经包含中文.英文输入法了,其余输入法可以删除掉.按ctrol键的时候本来应该是搜狗输入法中英文切换,结果却是搜狗输入法和ABC输入法之间互相切换. 打开键盘偏好设置 ...
- 获取可用的处理器(CPU)核数【转】
linux下获取cpu核数,sysconf(_SC_NPROCESSORS_CONF),,, from:红黑联盟,https://www.2cto.com/kf/201210/164480.html ...
- 搭建HBase+thrift+php环境
http://www.beauty-soft.net/blog/ceiba/hadoop/2013-05-19/644.html http://www.360doc.com/content/11/07 ...
- 【Hibernate】浅析hibernate中的延迟加载
1 简介 在使用一些查询方法时,方法执行了,但是并没有立刻发送SQL语句查询数据库.而是在访问对象的getXxx方法时候才触发SQL执行加载对象数据.这种机制就称为延迟加载. 2 优点 延迟加载主要是 ...
- UIAlertView 点击按钮后控制其是否消失
新建NotDismissAlertView类,继承UIAlertView. 设置控制是否消失的标示符 重写 在-(void)dismissWithClickedButtonIndex:(NSInte ...
- Firefox 网络调试工具
1.Firefox 简介 Firefox 官网下载地址 Firefox 其它下载地址 Firefox 58.0.2 for Mac,密码:346y. Firefox 36.0.4 for Mac,密码 ...
- hashCode和identityHashCode 的关系
1:首先看一下JDk API的观点 1-1:hashCode方法相关 1-2:identityHashCode()方法相关 2:此例的核心程序,对应的观点在注释中已经有所说明,请自己也动手实验一下看看 ...
- numpy 字符数组和字符操作(略)
字符数组 该部分内容见 numpy-ref-1.14.5 中的 1.6.4 字符数组Character arrays (numpy.char) 和 3.1.4 创建字符数组Creating chara ...
- 手动脱WinUpack 壳实战
作者:Fly2015 吾爱破解培训第一课选修作业第6个练习演示样例程序.不得不反复那句话,没见过这样的壳,该壳是压缩壳的一种,相对于压缩壳,加密壳的难度要大一些.特别是IAT表的修复问题上. 首先分别 ...