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

vim编辑器使用方法汇总

guanshanw 2023-08-22 02:50 43 浏览 0 评论

安装vim编辑工具

yum -y install vim*

vim编辑器使用方法汇总

一般模式:当你vim filename 编辑一个文件时, 一进入该文件就是一般模式了。在这个模式下, 你可以做的操作有: 上下移动光标, 删除某个字符, 删除某行, 复制、粘贴一行或者多行。

编辑模式:一般模式下, 是不可以修改某一个字符的, 只能到编辑模式了。从一般模式进入编辑模式, 只需你按一个键即可(i, I, a, A, o, O, r, R)。

当进入编辑模式时, 会在屏幕的最下一行出现INSERT或REPLACE的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。

命令模式:在一般模式下,输入 ":" 或者 "/" 即可进入命令模式。在该模式下, 你可以搜索某个字符或者字符串, 也可以保存、替换、退出、显示行号等等。

1. 使用vim打开一个文本文件

> vim filename 进入一般模式

当我们在终端中使用vi filename, 就会自动打开文件并进入VI的命令模式。

这个模式下不能编写任何代码! 但是可以进行复制、粘贴、删除等操作功能。

2. 编辑模式

a:光标所在的行之后插入(追加) append

i:光标所在的字符之前插入 insert

o:新起一行插入 open


O:当前方的上一行插入

s:删除光标所在字符,然后再插入


退出输入模式: Esc键

打开显示模式的开关: :set showmode


3. 命令模式

输入":"或"/"进入命令模式

:w //对编辑后的文档进行保存

:q //退出vi编辑器

:wq //保存文档并退出编辑器

:q! //强制退出编辑器(不保存)

:w! //强制保存

:wq! //强制保存并退出

为何需要"!",可能你的文件没权限, 或者文件作出了修改


/内容 或 ?内容 //内容查找(搜索)

//n下一个 N上一个


/字符串 在文本中从上至下搜索该字符串

?字符串 在文本中从下至上搜索该字符串


特殊字符的查找, 使用 "\" 转义

/\[DEFAULT\]


:set number 或 nu //给编辑器设置行号

:set nonumber 或 nonu //取消编辑器行号

:数字 //光标定位到数字所在行

:19 //光标定位到第19行


指定范围查找:

:1,100/transport_url 从第1行到100行查找 "transport_url" 关键字

:/DEFAULT/,100/transport_url 从字符串 "DEFAULT" 所在的行到100行范围内查找 "transport_url" 关键字

:/\[DEFAULT\]/,100/transport_url 从字符串 "[DEFAULT]" 所在的行到100行范围内查找 "transport_url" 关键字


ex常用编辑命令:

d (delete) 删除行

m (move) 移动行

co (copy) 复制行

t 复制行, 和co同义

:3,18 d 删除3~18行

:11,15 m 23 把11~15行移动到23行下面。

:23,29 co 100 复制23~29行并把它们粘贴到100行下面

//内容替换cont1被替换为cont2

:s/cont1/cont2/ //光标所在行的第一个cont1被替换为cont2

:s/cont1/cont2/g //光标所在行的全部cont1被替换为cont2, 不加g则只替换每行的第一个count1

:%s/cont1/cont2/g //整个文档的全部cont1被替换为cont2, 不加g则只替换每行的第一个count1(等同于:1,$s/count1/count2/g)

:1,5s/count1/count2/g //在1-5行之间查找count1并替换为count2, 不加g则只替换每行的第一个count1


注意: vim 中可用 :s 命令来替换字符串


4. 一般模式操作

1) 光标移动操作

① 字符级

上(k) 下(j) 左(h) 右(l) 键

② 单词级

w: word下个单词的首字母

e: end下(本)个单词的尾字母

b: before上(本)个单词的首字母

③ 行级

$: 行尾

^: 行首(行首的的非空白字符)

0: 行首(数字0键,当前行的第一个位置)

k: 向上移动1行

2k:向上移动2行

fx: 移动到指定的字符上(x)

Fx: 向前移动到指定的字符上(x)

④ 段落级(给翻屏)

{: 上(本)个段落的首部

}: 下(本)个段落的尾部

⑤ 屏幕级(不翻屏)

H: 屏幕可见区域的首部

L: 屏幕可见区域的尾部

⑥ 文档级

G: 文档尾行

1G: 文档首行(gg)

nG: 文档第n行


2) 内容删除操作

dd: 删除光标当前行

n+dd: 从光标所在行向后删除n行内容(包括光标所在行)

x : 删除光标所在的单个字符(小写向后删除) X(大写的向向前删除)

cw: 从光标所在位置删除至单词结尾, 并进入"编辑"模式

J 删除换行符(两行合并一行)


3) 内容复制操作

yy: 复制光标当前行

n+yy: 从光标所在行向后复制n行内容(包括光标所在行)

p: 对复制(删除)的内容进行"粘贴"

4) 快捷操作

u: undo撤销(undo单词的意思是撤销) Ctrl + r (组合键): 反撤销

J: 连接上下两行

.点 重复执行上次指令

r 替换单个字符


非正常关闭vim编辑器后提示错误的解决方法

使用vim, 错误出现原因一般为以下两种情况:

(1) 当你用多个程序编辑同一个文件时。

(2) 非常规退出时。

会提示以下信息:

Swap file ".old.txt.swp"already exists!

[O]penRead-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

(1)(2)为官方给出的解决方法:

(1) 为了避免同一个文件产生两个不同的版本, 还是建议选择"(Q)uit"或者继续谨慎修改选择"(E)dit anyway"。

(2) 也可以选择"(R)ecover"或"vim -r filename"恢复到未修改之前, 然后再把swp文件删除(这个时候要确保你的swp文件没有用处了)。

最下面选项的意思:

O: 只读, 不能改

E: 可以改, 从前的修改都丢失

R: 恢复(从前的修改)

D: 删去(删去.swp文件, 文件恢复到未修改前)

Q: 退出

A: 放弃

具体解决方案:

(1) 不想保留原先修改的内容直接选D就可以。

(2) 想保留原先修改的内容选R把修改的内容复制出来保存, 再退出文件删除awp文件。(awp文件默认为隐藏文件, 用ls -a命令查看, 用rm命令删除。)


linux 上文件用vim 编辑保存后, 自动生成了一个文件(文件名加了个 "~"号)怎么去除掉?

vim的文件旧版本备份功能, 但凡你重新编辑一个已经存在的文件时, 在你保存的时候会将老版本加一个~另存为一个备份文件, 当然如果这个备份文件已经存在就会覆盖原来的.

想要取消这个功能, 用:set nobackup 命令就可以。

~/.vimrc中添加:

set nobackup

set nowritebackup

set noswapfile ! (additionally disable swap files)

相关推荐

七条简单命令让您玩转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

取消回复欢迎 发表评论: