vim基本命令之剪切复制粘贴替换
⾸先是剪切(删除):
剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令⽤,也可以当删除命令使⽤。
1 ⾸先,可以在命令模式下输⼊v进⼊⾃由选取模式,选择需要剪切的⽂字后,按下d就可以进⾏剪切了。
2 其他命令模式下剪切命令:
3 dd:剪切当前⾏
4 ndd:n表⽰⼤于1的数字,剪切n⾏
5 dw:从光标处剪切⾄⼀个单⼦/单词的末尾,包括空格
6 de:从光标处剪切⾄⼀个单⼦/单词的末尾,不包括空格
7 d$:从当前光标剪切到⾏末
8 d0:从当前光标位置(不包括光标位置)剪切之⾏⾸
9 d3l:从光标位置(包括光标位置)向右剪切3个字符
10 d5G:将当前⾏(包括当前⾏)⾄第5⾏(不包括它)剪切
11 d3B:从当前光标位置(不包括光标位置)反向剪切3个单词
12 dH:剪切从当前⾏⾄所显⽰屏幕顶⾏的全部⾏
13 dM:剪切从当前⾏⾄命令M所指定⾏的全部⾏
14 dL:剪切从当前⾏⾄所显⽰屏幕底的全部⾏
⾃⼰实践时,还发现,单独按d键,是剪切2⾏,按下nd,是剪切n+1⾏,不过⼀般使⽤还是推荐使⽤双d(即dd)来执⾏。
对于复制命令,和剪切命令⼤体相似,就是把相应的d换成y即可:
⾸先,可以在命令模式下输⼊v进⼊⾃由选取模式,选择需要剪切的⽂字后,按下y就可以进⾏剪切了。
其他命令模式下剪切命令:
yy:复制当前⾏
nyy:n表⽰⼤于1的数字,复制n⾏
yw:从光标处复制⾄⼀个单⼦/单词的末尾,包括空格
ye:从光标处复制⾄⼀个单⼦/单词的末尾,不包括空格
y$:从当前光标复制到⾏末
y0:从当前光标位置(不包括光标位置)复制之⾏⾸
y3l:从光标位置(包括光标位置)向右复制3个字符
y5G:将当前⾏(包括当前⾏)⾄第5⾏(不包括它)复制
y3B:从当前光标位置(不包括光标位置)反向复制3个单词
单独按y是复制2⾏,ny是复制n+1⾏
⾄于粘贴命令最简单,在需要粘贴的光标处按下p即可。
前⾯复制其他⼈的,后⾯也是
vi/vim 中可以使⽤:s 命令来替换字符串。该命令有很多种不同细节使⽤⽅法,可以实现复杂的功能,记录⼏种在此,⽅便以后查询。
  :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/
  1.:s/vivian/sky/ 替换当前⾏第⼀个 vivian 为 sky
  :s/vivian/sky/g 替换当前⾏所有 vivian 为 sky
  2. :n,s/vivian/sky/替换第n⾏开始到最后⼀⾏中每⼀⾏的第⼀个vivian为sky   :n,s/vivian/sky/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所
有 vivian 为 sky
  (n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏)
  3. :%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每⼀⾏的第⼀个 vivian 为 sky
  :%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每⼀⾏中所有 vivian 为 sky
  4. 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符vim命令进入编辑模式
  :s#vivian/#sky/# 替换当前⾏第⼀个 vivian/ 为 sky/
  5. 删除⽂本中的^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   如果上述⽅法⽆⽤,则正确的解决办法是:[Page]   。tr−d\""<src>dest   。tr−d\""dest   。stringsA>B6.替换确认我s/str1/str2/g ⽤字符串 str2 替换正⽂当前⾏到末尾所有出现的字符串 str1
  :1,$ s/str1/str2/g ⽤字符串 str2 替换正⽂中所有出现的字符串 str1
  :g/str1/s//str2/g 功能同上
  从上述替换命令可以看到:g 放在命令末尾,表⽰对搜索字符串的每次出现进⾏替换;不加 g,表⽰只对搜索
  字符串的⾸次出现进⾏替换;g 放在命令开头,表⽰对正⽂中所有包含搜索字符串的⾏进⾏替换操作
Processing math: 100%
Processing math: 100%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。