linux vim
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux vim相关的知识,希望对你有一定的参考价值。
vim 安装命令yum install -y vim-enhancedvim的三种模式:一般模式编辑模式命令模式
一般模式: 当您vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,您可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需您按一个键即可(i, I, a, A, o, O, r, R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
命令模式:在一般模式下,输入 ”:” 或者 “/” 即可进入命令模式。在该模式下,您可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。
vim一般模式下光标移动
(vim有三种模式:一般模式 编辑模式 命令模式)
h或向左方向键 光标向左移动一个字符
j或者向下方向键 光标向下移动一个字符
k或者向上方向键 光标向上移动一个字符
l或者向右方向键 光标向右移动一个字符
同时也开业和数字组合选(按数字和快捷字母一起用)
ctrl+f或者pageup键 屏幕向前移动一页(往下翻)
ctrl+b或者pageDOWN键 屏幕向后移动一页(往上翻)
ctrl+d 屏幕向前移动半页
ctrl+u 屏幕向后移动半页
+ 光标移动到非空格符的下一列
- 光标移动非空格符的上一列
n空格(n是数字) 按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n。
0(数字0)或者shift+6 移动到本行行首
shift+4 即¥移动到本行行尾
H 光标移动到当前屏幕的最顶行
M 光标移动到当前屏幕的中央那一行
L 光标移动到当前屏幕的最低行
G 光标移动到文本的最末行
nG (n是数字) 移动到该文本的第n行
gg 移动带该文本的首行
n回车 (n是数字) 光标向下移动n行
一般模式下的查找和替换
一、 字符串的查找
1. vim 中用 / 和 ? 来查找字符串,两者的区别是:
/string 会高亮显示光标后匹配的第一个字符串,回车后光标移到该字符串的第一个字母;
?string 会高亮显示光标前匹配的第一个字符串,回车后光标移到该字符串的第一个字母。
在回车之后,按n键同方向转到下一个匹配的字符串,按N键反方向转到上一个匹配的字符串。
2. 用命令 :set ic 和 :set noic 来分别设置查找时不区分和区分大小写。
如果查找特殊字符,如 ^、$、*、/ 和 .,需要在前面加 \ 来转义。
二、字符串的替换
1. vim 中可用 :s 命令来替换字符串,具体如下:
:s/str1/str2/ 替换当前行第一个 str1 为 str2
:s/str1/str2/g 替换当前行中所有 str1 为 str2
:m,ns/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2
:m,ns/str1/str2/g 替换第 n 行开始到最后一行中所有的 str1 为 str2
(注:m和n 为数字,若m为 .,表示为当前行开始;若n为$,则表示到最后一行结束)
如果使用 # 作为分隔符,则中间出现的 / 不会作为分隔符,比如:
:s#str1/#str2/# 替换当前行第一个 str1/ 为 str2/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
2. 其他
:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每一行的第一个 str1 为 str2
:%s/str1/str2/g(等同于 :g/str1/s//str2/g 和 :1,$ s/str1/str2/g ) 替换文中所有 str1 为 str2
从替换命令可以看到,g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。 3.回车换行符\n:%s/\\n/str/g:%s/str/\\n/g即使使用gedit工具也是替换\\n(代表回车换行符\n) 4.举例说明:替换文档中所有的/n为\n:%s#/n#\\n#g
vim一般模式下复制剪切粘贴
x 向后删除一个字符 X向前删除一个字符
nx(n为数字)向后删除n个字符
dd删除光标所在的那一行
ndd(n为数字)删除光标所在的向下n行
d1G 删除光标所在行到第一行的所有数据
dG 删除光标所在行到末行的所有数据
yy 复制光标所在的那行
nyy 复制从光标所在行起向下n行
p,P p复制的数据从光标下一行粘贴,P则从光标上一行粘贴
j 讲光标所在行与下一行的数据结合成同一行
u 还原过去的操作
ctrl+r 撤销
v 可是界面
vim编辑模式
i 在当前字符前插入字符
I 在当前行行首插入字符
a 在当前字符后插入字符
A 在当前行行末插入字符
o 在当前行下插入新的一行
O 在当前行上插入新的一行
vim 命令模式
:w 将编辑过的文本保存
:w!若文本属性为只读时,强制保存。
:q 退出vim
:wq 保存,退出
:e! 将文档还原成最原始状态
:q!强制退出
set nu 显示行号
set mnou 去掉行号
/ (后缀字符)搜索字符
按小n 一个一个的跳转
? (后缀字符)搜索字符
按小n往上翻屏幕
N往下翻屏幕
:1,20s/(被替换的字符)/(想换成的字符)/g (回车) 知道多少行的时候直接制定即可
:1,¥s///g (回车)不知道多少行的情况下这样操作
:%s///g(回车)%所有替换
本文出自 “Linux菜鸟” 博客,请务必保留此出处http://490617581.blog.51cto.com/11186315/1757803
以上是关于linux vim的主要内容,如果未能解决你的问题,请参考以下文章