前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中vi,vim操作技巧

linux中vi,vim操作技巧

作者头像
入门笔记
发布2022-06-02 19:15:40
4.5K0
发布2022-06-02 19:15:40
举报
文章被收录于专栏:入门小站入门小站

配置vim

  • /etc/vimrc配置项全局生效,对所有用户生效
  • .vimrc家目录下,只针对某个用户生效
代码语言:javascript
复制
> vim /etc/vimrc
set number     #显示行号
set autoindent #自动缩进
set nowarp     #不换行

退出vim编辑器

保存退出

使用 Vim 编辑器保存并退出编辑状态是一件轻而易举的事,你只需记住按 ESC 键切换到正常模式,然后输入冒号(:),之后输入wq即可实现保存并退出。

代码语言:javascript
复制
> vim rumenz.txt
123
:wq
直接退出

如果不想保存,则按 ESC 键切换到正常模式,然后输入冒号(:),之后输入 q! 即可。

代码语言:javascript
复制
> vim rumenz.txt
123
:q

删除一行或者多行

通过退格键(Backspace)来删除一行代码显然是太麻烦了。可以通过切换到正常模式(编辑模式下按 ESC 键)来进行操作:

  • dd:输入两次dd删除当前行。
  • 3dd:从当前行开始删除3行。
  • dG:(先输入d,然后按 shift 键输入 g)删除当前行至最后一行的所以行。

复制粘贴一块代码

你可能经常需要复制一行或一大块代码,使用 Vim 快捷键来实现此功能是非常简单的:

  • 按 Esc 切换到正常模式;
  • 把光标移到你需要复制的代码行首;
  • 按 V 选择整行,可移动光标选择多行;
  • 按 d 剪切或按 y 复制选择的代码;
  • 移动光标到你需要粘贴的位置,按 p 粘贴代码到光标后的位置,或按 P 粘贴到光标前。

撤销与重做

在使用 Vim 或其他编辑器的时候,你可能经常需要对某些修改进行撤销或重做。在 Vim 中,你可以切换到正常模式,按 u 来撤销操作,按 Ctrl+r 来重做。

代码注释

代码注释
  • 按 Ctrl+v 切换到可视化模式;
  • 移动光标(j 或 k)选中需要注释的行的开头;
  • 按大写 I,然后输入注释符,如 #;
  • 最后按 Esc。
取消注释
  • 按 Ctrl+v 切换到可视化模式;
  • 按 j 或 k 选择要删除的注释符;
  • 按 d 或 x 删除注释符

搜索

搜索在很多时候都是一个非常重要的功能。在文件中搜索一个特定的词,可以切换到正常模式,然后输入斜线/,之后跟上要搜索的词,回车即可。

代码语言:javascript
复制
> vim rumenz.txt

/rumenz

按 n 显示下一个搜索结果,按 N 显示上一个搜索结果。

把外部文件读入vim

我开始使用vim 的时候,经常会打开一个文件、复制内容、关闭文件、打开另一个文件、然后粘贴进去复制到内容。其实 Vim 中读取另一个文件的内容非常方便。切换到正常模式,然后按:read <File Name> 。使用此快捷键你不需要手动打开文件来复制内容。

代码语言:javascript
复制
> vim rumenz.txt

:read readme.md

把命令的结果读入vim

切换到正常模式,然后输入:read !command 即可把command的结果输入到vim中。

代码语言:javascript
复制
> vim rumenz.txt

:read !pwd

切换到上次修改的位置

想知道你在文件中做的最后一次修改是在什么位置?切换到正常模式,输入 g; 来即可切换到上次修改的位置。

移动到文件顶部或者尾部

切换到正常模式,输入 gg 返回文件顶部,输入 G 返回文件底部。

切换到当前行的行首或者行尾

正常模式,输入$跳到当前行的行尾。输入0跳到当前行的行首。

vim中以16进制查看文件

正常模式下,输入:%!xxd会把当前文本转换成16进制

代码语言:javascript
复制
> vim rumenz.txt
123
:%!xxd

恢复到正常模式

代码语言:javascript
复制
> vim rumenz.txt
123
:%!xxd -r

大小写敏感查找

在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找

代码语言:javascript
复制
> vim rumenz.txt
123
/rumenz \c

将查找rumenz,Rumenz,RUMENZ等等

查找与替换

语法

代码语言:javascript
复制
:{作用范围}s/{目标}/{替换}/{替换标志}

例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)。

替换当前行
把当前行所有的rumen全部替换成rumenz
代码语言:javascript
复制
:s/rumen/rumenz/g
只把当前行第一次出现的rumen替换成rumenz
代码语言:javascript
复制
:s/rumen/rumenz/
全局替换
把所有的rumen替换成rumenz
代码语言:javascript
复制
:%s/rumen/rumenz/g
只把每一行第一次出现的rumen替换成ruemnz
代码语言:javascript
复制
:%s/rumen/rumenz/
5到10行替换
5到10行所有的rumen都替换成rumenz
代码语言:javascript
复制
:5,10s/rumen/rumenz/g
5到10行每一行第一次出现rumen的替换成rumenz
代码语言:javascript
复制
:5,10s/rumen/rumenz/
当前行与接下来3行rumen全部替换
代码语言:javascript
复制
:.,+3s/rumen/rumenz/g

每一行后面追加123

代码语言:javascript
复制
:%s/$/123/

每一行前面加#,添加注释

代码语言:javascript
复制
:%s/^/#/

删除每一行开头的#,删除注释

代码语言:javascript
复制
:%s/^#//
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置vim
  • 退出vim编辑器
    • 保存退出
      • 直接退出
      • 删除一行或者多行
      • 复制粘贴一块代码
      • 撤销与重做
      • 代码注释
        • 代码注释
          • 取消注释
          • 搜索
          • 把外部文件读入vim
          • 把命令的结果读入vim
          • 切换到上次修改的位置
          • 移动到文件顶部或者尾部
          • 切换到当前行的行首或者行尾
          • vim中以16进制查看文件
          • 大小写敏感查找
          • 查找与替换
            • 替换当前行
              • 把当前行所有的rumen全部替换成rumenz
              • 只把当前行第一次出现的rumen替换成rumenz
            • 全局替换
              • 把所有的rumen替换成rumenz
              • 只把每一行第一次出现的rumen替换成ruemnz
            • 5到10行替换
              • 5到10行所有的rumen都替换成rumenz
              • 5到10行每一行第一次出现rumen的替换成rumenz
            • 当前行与接下来3行rumen全部替换
            • 每一行后面追加123
            • 每一行前面加#,添加注释
            • 删除每一行开头的#,删除注释
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档