前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux中vim的基本介绍和使用

Linux中vim的基本介绍和使用

作者头像
薛定谔方程难
发布2024-07-25 13:44:02
620
发布2024-07-25 13:44:02
举报
文章被收录于专栏:我的C语言

善为理者,举其纲,疏其网。

1、vim介绍

如果我面想要在Linux上编写代码的话,我就需要vim来帮助我们编写代码。但是vim并不像是在Windows上的vs集成软件把所有的东西都集成起来但是呢,如果不进行配置的话,vim和其他是相互独立的,vim就是写代码的编辑器,编译代码就是gcc/g++的编译器,调试代码就有gdb的调试器。自动化构建就有make和makefile构建的工具。

vim是款编辑器,同时也是多模式的编辑器—命令模式,底行模式,插入模式。 简单编译一个hello vim程序 vim刚开始打开的时候,暂时是无法正常输入的,因为刚打开的时候是命令模式,默认打开的时候,目前所输入的都会看成是命令,当然,如果命令不对当然什么操作都没有咯。 从命令模式进入插入模式输入 i。 如果编辑完了,想要退出去,该怎么办呢?首先需要从插入模式退出到命令模式,按一下Esc,现在在命令模式,此时想要退出的话,需要按:() ,从命令模式进入到底行模式之后,继续按wq就能够退出。如果是在底行模式不想退出的话,也能够通过按Esc重新命令模式。 概括介绍: 插入模式:编辑模式 命令模式:允许使用者通过命令,来进行文本的编辑控制。 底行模式:如果前两个模式是对于文本内容的控制,底行模式就是让vim进行包括但不限于和shell进行交互的。

2、命令模式详情

命令模式:没必要进入插入模式才能对文本进行操作。

代码语言:javascript
复制
yy:复制当前行
p:粘贴到当前光标的下一行
u:撤销
dd:剪切/删除
n dd:剪切/删除n行
n p:粘贴n行
n yy:复制n行
代码语言:javascript
复制
$:快速定位光标到当前行的最末尾
^:快速定位光标到当前行的最开头
gg:将光标定位到文本的最开头
G:将光标定位到文本的最末尾
n G:定位到指定的n行
代码语言:javascript
复制
h:光标向左一位
j:光标向下一位
k:光标向上一位
l:光标向右一位

n h:光标向左n位
n j:光标向下n位
n k:光标向下n位
n l:光标向右n位

快速记住hjkl方向键的意义。 h最左边,所以h表示向左。l在最右边,所以l表示向右。k(king高高在上),所以k表示向上。j(jump向下跳),所以j表示向下。

代码语言:javascript
复制
w:按照单词为单位,进行光标后移
b:按单词为单位,进行光标前移
代码语言:javascript
复制
ctrl r:撤销撤销的动作
shift~:shift按住不动,连续按~能让光标定位的字母快速进行大小写切换
x:删除光标所在位置的字符,先向后删,删完后向前删
n x:删除光标所在位置的n个
X:删除光标之前的字符
r:对光标指定的位置,进行一个字符的替换
n r:对光标指定的位置,进行n个字符的替换
R:进入replace模式,能够进行多次替换
代码语言:javascript
复制
i:直接进入插入模式
o:进入编辑模式的同时还新增一行
a:进入编辑模式,同时向后一位字符

3、底行模式详情

进入底行模式,是在命令模式情况下按:。

代码语言:javascript
复制
q!:强制退出。
q:退出,但是如果不保存的话,会警告没有保存。
wq:保存并退出
wq!:保存并强制退出
代码语言:javascript
复制
set nu:调出行号
set nonu:去掉行号

还可以进行批量化的替换

代码语言:javascript
复制
s/prinf/PRINTF/g:进行printf全部替换成PRINTF
/XXX:进行XXX的全文搜索,并且高亮
代码语言:javascript
复制
!command:不退出vim,可以进行shell命令的执行
(最常用的能够man指令,这样就不用退出后再去查看)

vim不会新建文件,只有当我们保存的时候,才会首次被创建。(vim 文件(新文件))。 在windows上的图形化界面,想要多文件同时编辑的话,只需要点击相对应的文件图形就能够切换,那么在Linux中怎么实现呢?难不成还是保存完之后再进行编辑另一个文件?

代码语言:javascript
复制
vs filename:分屏,多文件操作
ctrl ww:光标在两个编辑窗口切换

左右两个窗口可以互相拷贝粘贴。

底行模式不能直接进入插入模式,插入模式也不能直接进入底行模式。

命令模式时候怎么快速的退出?ZZ即可

4、困难问题

怎么注释? 换句话说困难的问题是,如何批量注释?

代码语言:javascript
复制
ctrl+v:先进入视图模式
//进入视图模式后选择需要批量化编辑的区域
I:大写的i进入编辑模式

编写完成之后按Esc两次,就能够进行多行的注释 怎么批量化去注释

代码语言:javascript
复制
ctrl+v:进入视图模式
//选择需要进行编辑的区域
d:删除/去注释

5、历史存疑问题

解决历史问题:普通用户无法进行sudo提权(其中Linux用户章节留下的问题) 如果没有提前解决白名单黑名单类似的问题的话,会出现这样的报错。

首先如果想要修改这个文件的话,必须要是root才能。利用root打开/etc/sudoers文件。进行修改。

找到这里并添加用户

可是此时也会出现报错,会有系统来提醒是否需要保存。这是就必须要用到**wq!**来强制保存并退出。

这样就成功了,能够实现sudo命令。

6、vim配置问题

6、1、配置的原理

vim不是简单的执行可执行程序,在启动执行的时候也会读取若干可执行的配置文件。通常来说没配置的话读取的都包含 .vimrc。 如果本身没有的话,可以创建一个.vimrc文件并在里面进行配置。这样的话也符合Linux多用户操作系统的作用,每一个人都可以个性化配置vim。可以但不限于set nu

6、2、一键式配置

在网上寻找例如gitte或者github上的教程。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、vim介绍
  • 2、命令模式详情
  • 3、底行模式详情
  • 4、困难问题
  • 5、历史存疑问题
  • 6、vim配置问题
    • 6、1、配置的原理
      • 6、2、一键式配置
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档