vi/vim替换字符

vim字符串替换

vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
	替换
  :s/vivian/sky/ 替换当前行第一个 vivian 为 sky
  :s/vivian/sky/g 替换当前行所有 vivian 为 sky
  :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
  :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
  n 为数字,若 n 为 .,表示从当前行开始到最后一行
  :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
  :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
  可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
  :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
  :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
  * ************************************

  删除文本中的^M
  问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
  · 使用命令:cat filename1 | tr -d “^V^M” >newfile;
  · 使用命令:sed -e “s/^V^M//” filename >outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。
  · 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。
  · :%s/^M$//g
  如果上述方法无用,则正确的解决办法是:
  · tr -d "r" dest
  · tr -d "5" dest
  · strings A>B
  其它
  利用 :s 命令可以实现字符串的替换。具体的用法包括:
  :s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
  :s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
  :.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
  :1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
  :g/str1/s//str2/g 功能同上
  从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
  字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

vi/vim 中如何在每行行首或行尾插入指定字符串

行首 :%s/^/your_word/

行尾 :%s/$/your_word/

按键操作:
注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"#",再按Esc,就会全部注释了。
删除:先按v,进入visual模式,横向选中列的个数("#"注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。

PS:当然不一定是shell的注释符"#",也可以是"//",或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。

使用替换命令:
在全部内容的行首添加//号注释
:% s/^/\/\//g
在2~50行首添加//号注释
:2,50 s/^/\/\//g
在2~50行首删除//号
:2,50 s/^\/\///g

vim vim光标的移动复制粘贴

1. vim

产生:对于linux 文件的编辑,最初是vi,然后对于其功能的扩展,就产生了vim

vim 的安装

yum install vim

2.光标的移动

  用得最多的就是方向键上的 上下左右,和home 、end 键

还有就是字母键上的  hjkl

h : 表示向前

j:表示向下

k:表示向上

l : 表示向后

w和e :   光标会按一个单词的形式,往后移

b : 光标则会按一个单词的形式,往前移。

gg: 同时按两下 小写的gg,光标会移动到首行

GG:同时按两下大定所GG,光标就会移动到末行

按下冒号:然后在冒号后面输入数字,然后回车,光标就会到指定行数的行首。



3.VIM的复制粘贴

 a . 复制选中的:

     光标移动到你要选中的文字前或后,然后按一下v键

再移动光标,若是要复制就按一下y键,若是要剪切就按一上d键

然后,再把光标移动到你想要粘贴的地方,按一下p键。

案例:

b04f2753d1c4b828042763203ba8d374.png-wh_

按V后选中,然后再按y 复制

0b668c17b1489e693f72d98e96876f91.png-wh_

把光标移动到要粘贴的地方 ,按p

3baad90a2ae4cd486364c821e0dea381.png-wh_

按v后,移动光标选中,

ca52208cb1babc6663d3eff527ef88e2.png-wh_

然后按d 剪切

2271a9d3d58679b5a8d316a1d1f24c4f.png-wh_

然后,移到光标到要粘贴的地方按p

上面是单个复制或剪切

以行来复制或剪切

1行,就是把光标移动到当前行,然后,按yy就是复制 ,按dd,就是剪切 ,然后移动光标

到需要粘贴的位置按p



n行, 就是 nyy  或 ndd  p

这里是,从光标往下数的N行。



以上就是vim的 移动 复制 剪切 粘贴。

vi/vim替换字符_第1张图片

你可能感兴趣的:(Linux)