Linux -- 了解 vim

目录

vim

[Linux 怎么编写代码?](#Linux 怎么编写代码?)

[了解 vim 的模式](#了解 vim 的模式)

什么是命令模式?

[命令模式下 vim 的快捷键:](#命令模式下 vim 的快捷键:)

光标定位:

复制粘贴:

删除及撤销:

注释代码:

什么是底行模式?

​编辑

​编辑

什么是插入模式?

如何进行模式切换?

TIP:


vim

在Windows下,我们常用 vs 来编辑、编译、调试代码,而在Linux下,编辑、编译、调试代码的工具是独立的。

vim的本质是一个多模式的编辑器,只能编辑代码,但不能编译代码。

Linux 怎么编写代码?

当我们创建一个 .c 文件,想要在文件中写代码时,vim 文件名 就可以进行编辑代码:

一开始进入 vim 时,为命令模式,在该模式下,按键盘无法进行写入!

我们需要进入编辑模式才可以输入代码,但一个没有经过配置的 vim 在输入代码时,没有语法高亮,没有括号和函数的补齐。

如果想退出 vim,按 Esc 从编辑模式回退到命令模式,再输入 :wq 就可以保存代码并退出!

如果我们想运行刚刚写的代码,可以gcc 文件名 编译代码,此时会生成一个可执行程序,./ 可执行程序 就可以运行代码!

了解 vim 的模式

什么是命令模式?

命令模式是 vim 打开时的默认模式,在该模式下,所有的输入,都会被当做命令来看待!

命令模式下 vim 的快捷键:

光标定位:

shift + $ (4):把光标定位到当前行的最右侧结尾处

shift + ^ (6): 把光标定位到当前行的最左侧结尾处

shift + g:把光标定位到文本的最结尾

gg:把光标定位给到文本的最开始

h:把光标左移

j:把光标下移

k:把光标上移

l:把光标右移

w:把光标移动到下一个单词的开头

b:把光标移动到前一个单词的开头

复制粘贴:

yy:复制当前行

n + yy :复制包括行在内的 n 行

p :在光标位置对复制的内容进行粘贴

n + pp :对复制的内容进行粘贴,并且粘贴 n 次!

删除及撤销:

u:撤销上一次的编辑

CTRL + r:对撤销进行撤销(即恢复到撤销前)

dd:删除当前行

n + dd:删除 n 行

注释代码:

批量化注释代码:

步骤一:CTRL+v

步骤二:hjkl 进行区域选择

步骤三: shift + i

步骤四:输入 //

步骤五:按键盘上的 Esc

批量式取消注释:

步骤一:CTRL+v

步骤二:hjkl 进行区域选择

步骤三:输入 d

什么是底行模式?

底行模式可以让用户在 vim 的底行输入命令。
:w : 表示保存

:q : 表示退出

:wq :表示保存并退出

:w! :q! :wq! 分别表示强制保存,强制退出,强制保存并退出。
:vs 文件名 :表示在同一界面下打开另一个文件,光标在哪个文件,我们就可以编辑哪个文件

CTRL+ww 就可以来回切换文件!

**: !man 函数名 **就可以在底行模式下查看函数的功能和头文件。

查看结束后,输入 q 就可以退出手册,按照提示,按任意键就可以回到 vim 界面!

什么是插入模式?

插入模式下,我们可以对代码进行编辑!

如何进行模式切换?

命令模式 切换到 插入模式 :按键盘 i / a / o (常用 i)

插入模式 切换到 命令模式:按 Esc

命令模式 切换到 底行模式:shift + ;

底行模式 切换到 命令模式:按 Esc

如果忘记自己在哪个模式下,无脑按 Esc 就可以回到命令模式!
注意底行模式和插入模式无法相互切换,需要回到命令模式后,再进行切换!

TIP:

如果在 vim 模式下不小心关掉了Xshell,或者网络突然断开(总之 vim 没有正常退出),vim 会自动保存上次编辑的文件,形成了临时文件,出现以下提示,我们只需要 输入D,系统就会删除临时文件,下次 vim 就会正常打开,不会再次输出下面的提示了。

我们也可以在文件列表下查看临时文件,当然也可以在列表下直接删除临时文件,下次打开 vim模式也会正常打开,但是不建议这种操作!

相关推荐
程序员-Benothing8 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
‎ദ്ദിᵔ.˛.ᵔ₎8 小时前
linux 进程信号 (上)
linux·服务器
15Moonlight8 小时前
Linux网络(02):Socket 编程 UDP
linux·网络·udp
wuminyu9 小时前
ForkJoinPool窃取线程在扫描其他WorkQueue时的随机采样算法与Phase线程挂起唤醒机制解析
java·linux·c语言·jvm·c++
liulilittle9 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
DongQiShanRen9 小时前
玄龙(上):TICK 主循环——意识心跳怎么跳
linux·jvm·数据库·人工智能·数据挖掘·rust
小此方10 小时前
Linux网络(二十一):深入理解 TCP 异常处理:网线断开、Keepalive 保活机制与 Linux 内核传输层协议源码剖析
linux·网络·tcp/ip
pride.li10 小时前
Python 安装
linux·python·ubuntu
笔墨登场说说10 小时前
centos 8 使用 kafka_2.13-4.3.1.tgz 安装kafka
linux·kafka·centos
luo_guibin10 小时前
Linux系统下OpenSSL升级全流程,新旧版本切换
linux·运维·服务器