linux vim

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux vim相关的知识,希望对你有一定的参考价值。

vim 安装命令yum install -y vim-enhancedvim的三种模式:一般模式编辑模式命令模式

  1. 一般模式: 当您vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,您可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。

  2. 编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需您按一个键即可(i, I, a, A, o, O, r, R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。

  3. 命令模式:在一般模式下,输入 ”:” 或者 “/” 即可进入命令模式。在该模式下,您可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。


 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向前删除一个字符

nxn为数字)向后删除n个字符

dd删除光标所在的那一行

nddn为数字)删除光标所在的向下n

d1G 删除光标所在行到第一行的所有数据

dG 删除光标所在行到末行的所有数据

yy 复制光标所在的那行

nyy 复制从光标所在行起向下n

p,P p复制的数据从光标下一行粘贴,P则从光标上一行粘贴

j  讲光标所在行与下一行的数据结合成同一行

u  还原过去的操作 

ctrl+r 撤销

可是界面

 



vim编辑模式

 

i  在当前字符前插入字符

I  在当前行行首插入字符

a  在当前字符后插入字符

A  在当前行行末插入字符

o  在当前行下插入新的一行

O  在当前行上插入新的一行

 

 

vim 命令模式

将编辑过的文本保存

w!若文本属性为只读时,强制保存。

退出vim

wq 保存,退出

e! 将文档还原成最原始状态

q!强制退出

set nu 显示行号

set mnou 去掉行号

/ (后缀字符)搜索字符

按小一个一个的跳转

 (后缀字符)搜索字符

按小n往上翻屏幕

N往下翻屏幕

120s/(被替换的字符)/(想换成的字符)/g   (回车)    知道多少行的时候直接制定即可

1,¥s///g (回车)不知道多少行的情况下这样操作

%s///g(回车)%所有替换















 


本文出自 “Linux菜鸟” 博客,请务必保留此出处http://490617581.blog.51cto.com/11186315/1757803

以上是关于linux vim的主要内容,如果未能解决你的问题,请参考以下文章

linux学习--vim

Linux开发工具一

Linux开发工具一

Linux开发工具一

linux shell批量注释

Ubuntu 新手快速配置