linux基础-vim

本文详细介绍了Vim编辑器的各种模式及快捷键,包括命令行模式、文本模式、末行模式的操作,如移动、删除、复制、查找、替换等,以及在多个终端下Vim之间的粘贴复制技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令行模式

  • 显示历史命令
      q:
      再输入 / 可查找命令

  • 转到文本模式
      a:插到当前字符后面
      A:跳到行尾
      i :插入当前位置
      I :跳到行首
      o:下一行
      O:上一行
      s:删除光标后面的字符
      S:删除一整行

  • 移动
      Ctr+e :向下翻行
      Ctr+y :向上翻行
      Ctr+f :向下翻页
      Ctr+b :向上翻页

      z + enter:移动光标所在的行移动到屏幕顶部
      z + .:移动光标所在的行移动到屏幕中央
      z + -:移动光标所在的行移动到屏幕尾部
      n+z+Enter:将第n行移动到屏幕顶部,同样的,z. 与 z- 前也可以加数字


      gg:移动到第一行的第一个字符
      G:移动到最后一行
      $:移动到行末
      0:移动到行首
      n G:移动到指定的n行
      n(h j k l):向上下左右移动 多行/字符
      ‘’:(双击 l 右边的符号)回到上次跳转处


      w:下一个单词
      b:上一个单词


      H:跳到当前页的第一行第一个字符
      M:跳到当前页的中间行第一个字符
      L:跳到当前页的最后一行第一个字符


      [ [:跳到光标上一个函数的开始处,如果在函数内,跳到当前函数的开始处
      ] ]:跳到下一个函数的开始处
      ] [:跳到光标下一个函数的结尾,如果在函数内部,跳到当前函数的结尾
      [ ]:跳到上一个函数的结尾

  • 删除(实际是剪切,可p进行复制)
      dw:删除光标后面一个单词
      db:删除光标前面一个单词
      daw:删除光标所在的单词

      d0:删除光标到行首
      D / d$:删除光标到行末

      X:删除前面的字符
      x:删除后面的字符

      dd:删除一整行
      ndd:删除当前行下面的n行
      dnG:删除当前行到第n行

  • 撤销、反撤销
      u  :撤销
      Ctr+r:反撤销

  • 复制、粘贴
     yaw:复制当前单词
      yy:复制当前行
     nyy:复制当前行(包含当前行)以下的n行
     P:在当前行上面粘贴
     p:在当前行下面粘贴

  • 查找
     / 或者? 查找的内容 ,n下一个,N上一个
      光标移到要找的内容 按#:向上查找
      光标移到要找的内容 按*: 向下查找

  • 替换
      r+需要替换的一个字符:将当前字符替换成其他字符

  • 可视模式
      v进入,选择需要的复制删除的部分,按y复制,d删除
     P:粘贴到光标前面
     p:粘贴到光标后面

  • 缩进
      <<
      >>

  • 查看man文档
      光标移动到函数名上按:
      K:在man文档查看当前的函数
      2K:在man 2 中查看当前的函数


文本模式

  • 转到命令行模式
      Esc 或者 Ctr+c 或者 Ctr+[

  • 编辑
      Ctr+h :删除前面一个字符
      Ctr+w :删除前面一个单词
      Ctr+u :删除至行首


末行模式(在命令行输入:)

  • 加密
      加密文件 :X->输入密码->退出保存
      解密文件:通过密码打开文件之后-> :X -> 连续两次回车

  • 查找替换
      :s/tom/jack/g   :  当前行所有tom替换成jack
      :27,30s/tom/jack/g :27,30行所有tom替换成jack
      :%s/tom/jack/g  :  当前文档所有tom替换成jack
      :如果不加g的话只是行的第一个替换

  • 分屏
      :sp :水平分屏 当前文件
      :vsp :垂直分屏 当前文件
      :vsp+文件路径 :垂直分屏 其他文件

      :vertical res 50:光标所在文件占50%
      :res 50 (默认横屏)

  • 执行命令
      :!+命令


多个终端下vim之间 粘贴复制

方法一:

在.vimrc中添加以下代码

"--- 跨终端粘贴
 let g:copy_file=$HOME . "/.vim_copybuffer"
 function Write_copy_file()
"本函数将 @" 缓冲区内容写入文件
 let lines=split(@", "\n")
 call writefile(lines,g:copy_file)
endfunction

 function Read_copy_file()
 "将copy_file文件写入@" 缓冲区,并且粘贴
 let l:buf=readfile(g:copy_file)
 let @"=join(l:buf,"\n")
 normal ""p
 endfunction

 nmap <silent> ;y :call Write_copy_file()<CR>
 nmap <silent> ;p :call Read_copy_file()<CR>

使用:

  1. 选中内容,按下 "+y 三个键将内容加入到"寄存器中 :reg可以查看
  2. 再按 ;y 两个键复制到buffer
  3. 在另一个终端中打开vim,按下;p两个按键 进行粘贴

方法二(推荐):

  1. 先查看vim对clipboard的支持, vim --version | grep clipboard默认的vim不支持clipboard
    在这里插入图片描述

  2. 如果前面是 - 号而不是+号,代表不支持,需要自行安装sudo apt-get install vim vim-scripts vim-gtk vim-gnome

  3. 使用 "+y 三个建复制, "+p 三个键粘贴

可以在.vimrc 中进行映射:

 "copy ,paste 之后 光标移到后面
vmap <C-c> "+y    
nmap <C-v> "+gp    

" 原来的Ctr+v是 块选择,需要重新map,注意使用非递归,否则将映射到"+gp 
nnoremap <leader>v <C-v> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值