关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

linux中vi,vim操作技巧

guanshanw 2023-08-20 13:33 32 浏览 0 评论

配置vim

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

退出vim编辑器

保存退出

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

> vim rumenz.txt
123
:wq

直接退出

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

linux中vi,vim操作技巧

> 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 删除注释符

搜索

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

> vim rumenz.txt

/rumenz

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

把外部文件读入vim

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

> vim rumenz.txt

:read readme.md

把命令的结果读入vim

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

> vim rumenz.txt

:read !pwd

切换到上次修改的位置

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

移动到文件顶部或者尾部

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

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

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

vim中以16进制查看文件

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

> vim rumenz.txt
123
:%!xxd

恢复到正常模式

> vim rumenz.txt
123
:%!xxd -r

大小写敏感查找

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

> vim rumenz.txt
123
/rumenz \c

将查找rumenz,Rumenz,RUMENZ等等

查找与替换

语法

:{作用范围}s/{目标}/{替换}/{替换标志}

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

替换当前行

把当前行所有的rumen全部替换成rumenz

:s/rumen/rumenz/g

只把当前行第一次出现的rumen替换成rumenz

:s/rumen/rumenz/

全局替换

把所有的rumen替换成rumenz

:%s/rumen/rumenz/g

只把每一行第一次出现的rumen替换成ruemnz

:%s/rumen/rumenz/

5到10行替换

5到10行所有的rumen都替换成rumenz

:5,10s/rumen/rumenz/g

5到10行每一行第一次出现rumen的替换成rumenz

:5,10s/rumen/rumenz/

当前行与接下来3行rumen全部替换

:.,+3s/rumen/rumenz/g

每一行后面追加123

:%s/$/123/

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

:%s/^/#/

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

:%s/^#//

原文链接:https://rumenz.com/rumenbiji/linux-vi-vim-skills.html

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: