Linux开发工具——vim篇

前言:

在Linux环境下,我们如何编写代码呢?其实,Linux提供了一个非常出色的开发工具:Linux编辑器——vim。让我们直接进入今天的主题!

Linux开发工具——vim篇认识vimLinux开发工具——vim篇 在过去,我们在Linux中常用的开发工具是vi,但现在的vim使用起来更为便捷。简单来说,vi和vim都是多模式编辑器,而vim是vi的升级版,不仅兼容vi的所有指令,还增加了一些新功能。 vim在Linux中的使用门槛较高,vim是一款多模式编辑器(下文详述),同时vim是一种集成开发环境,类似于在Windows中使用vscode,可以编写代码、编译调试以及其他功能。 在Linux中,我们用vim编写代码,用gcc/g++编译代码,用gdb调试代码,自动化编译则使用make/makefile,因此,Linux中的工具是独立的!今天我们要学习的vim就是负责代码编写的子功能。

那么我们如何开始用vim编写代码呢?我们可以新建一个文件:

Linux开发工具——vim篇当我们使用vim打开file.c文件后,会发现:

Linux开发工具——vim篇 进入界面后,我们会发现输入没有反应,而有时按某个键又可以输入,这是因为vim默认打开文件时处于命令模式,也称为正常模式,也就是说,你从键盘上输入的许多数据都被视为命令!

由于我们使用的是命令模式,所以输入时不会显示任何内容,而当你不小心按到某个键时可以输入,是因为你按到了模式切换的键。

接下来我们详细讨论模式切换!

vim常用三种模式 像上面那样,我们想要用vim打开一个文件并编写代码,使用的指令是:

vim 文件名#使用vim打开一个文件

打开文件后,vim默认进入正常模式,若想编写代码,需要将正常模式切换为插入模式:

输入a 输入i 输入o 当我们在键盘上输入这三个任意字母时,vim会从正常模式切换为插入模式,此时就可以自由编写了:

Linux开发工具——vim篇 如果我们不想继续输入,就像刚开始打开vim那样,也就是说,从插入模式切换回正常模式:在插入模式下,只需按 [ESC] 键即可切换回正常模式。

Linux开发工具——vim篇 除了这两种常用模式外,我们还有另一种模式——末行模式,切换到末行模式需要:长按shift + ; 也就是输入 :

注意: 如果我们当前在插入模式下,必须先切换到正常模式再切换到末行模式,这是因为在插入模式下输入 : 会被处理成字符,末行进入插入也是如此。

在末行模式下的保存退出:

:w(保存当前文件) :q!(不存盘强制退出vim) :wq(保存并退出vim) 末行模式的功能是输入对应的指令,可以用来退出,保存,保存并退出等操作!例如我们编写一个c的文件,并将其保存:

Linux开发工具——vim篇 输入完成后按 [ESC] 键进入正常模式,再按住 shift+; 键 进入末行模式,输入wq,表示退出并保存。我们再对file.c文件进行cat查看是否保存:

Linux开发工具——vim篇 保存成功,强制退出与保存可以自己做个测试,来熟悉这三种常用模式。

我们已经了解了这三种模式的基本用法,用关系图来概括这三种模式之间的关系就是:

Linux开发工具——vim篇vim正常模式命令集 在vim正常模式下我们常用的指令集,包括模式切换、文本的增删改查等命令,我们来看一下常用的指令有哪些吧:

模式切换插入模式: 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件; 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。插入模式切换为正常模式移动光标老式键盘的上下左右按键:

Linux开发工具——vim篇vim可以直接使用键盘上的光标来上下左右移动,但正规的vim使用 小写 的 [h]、[j]、[k]、[l],分别控制光标左、下、上、右各一格。按 「G」:移动到文章的最后按 「$」:移动到光标所在行的“行尾”按 「^」:移动到光标所在行的“行首”按 「w」:光标跳到下个字的开头按 「e」:光标跳到下个字的字尾按 「b」:光标回到上个字的开头按 [#l] :光标移动到改行的第#个位置。按 [gg]:进入文本开始。按 [shift+g]:进入文本末端。按 [ctrl + b]:屏幕向‘’后移‘’动一页。按 [ctrl + f]:屏幕往‘’前‘’移动一页。按 [ctrl + u]:屏幕向‘’后‘’移动半页。按 [ctrl + d]:屏幕像‘’前‘’移动半页。删除文字按 [x]:每按一次,删除光标所在位置的一个字符。按 [#x]:例如,[6x] 表示删除光标所在位置的后边(包含自己在内)6个字符。按 [X]:大写的X,每按一次,删除光标所在位置的“前面”一个字符。按 [dd]:删除光标所在行。按 [#dd]:从光标所在行开始删除#行。赋值按 [yw]:将光标所在之处到字尾的字符复制到缓冲区中,按 [#yw]:复制#个字到缓冲区中。按 [yy]:复制光标所在行到缓冲区。按 [#yy]:例如,[6yy] 表示拷贝从光标所在的该行到“往下数”6行文字。按 [p]:将缓冲区内的字符贴到光标所在的位置。注意:所有与’y’有关的复制指令都必须以’p’配合才能完成复制与粘贴的功能。替换[r]:替换光标所在处的字符。[R]:替换光标所到之处的字符,直到按下[ESC]为止。撤销上一次操作[u]:如果不小心错误使用一个指令,可以按下 [u],回到上一个操作。按多次 [u],可以恢复多次操作。[ctrl + r]:撤销的恢复。更改[cw]:更改光标所在处的字到字尾处。[c#w]:例如,[c4w]更改4个字符。跳到指定的行[ctrl + g]:列出光标所在行的行号。「#G」:例如,「15G」,表示移动光标至文章的第15行行首 这些指令看起来很多,但其实大部分是我们日常需要的,只要多加实践,这些命令自然而然就会接触到,使用多了就会熟练。

vim末行模式命令集 在使用末行模式之前,请记住先按 [ESC] 键确定你已经处于正常模式,再按[:]即可进末行模式。

列出行号[set nu]:输入[set nu]后,会在文件中的每一行前面列出行号。跳到文件中的某一行:[#]:[#] 号表示一个数字,在冒号后面输入一个数字,再按回车键就会跳到改行了。保存文件[w]:在冒号输入字符 [w] 就可以将文件保存。离开vim[q]:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。[wq]:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件查找字符:[/关键字]:先按[/]键,再输入你想找寻的字符,如果第一次找到的关键字不是你想要的,可以一直按[n] 会前往寻找到你要的关键字为止。[?关键字]:先按 [?] 键,再输入你想寻找的字符,如果第一次找到的关键字,不是你想要的,可以一直按[n] 会前往寻找到你要的关键字为止。它们的区别就是前一个查找是顺序查找,后一个查找是倒序查找。

总结 三种模式:

正常模式 插入模式 底行模式我们总共有12种模式,这里是常见的三种模式,大家有兴趣可以自己查阅资料。

vim 操作:

打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

题外话:vim的个性化配置 vim支持个性化设置,可以设置语法高亮等操作,搭配适合自己的风格写代码会更舒适。配置vim的操作,是要在特定的文件下编写才能生效。

配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件,执行 vim .vimrcvim常用配置选项

syntax on#设置语法高亮set nu#显示行号set shiftwidth=4#设置缩进的空格数为4

使用插件要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来:

安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1安装文件浏览器和窗口管理器插件: WinManager下载winmanager.zip,2.X版本以上的解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入”wm”, 你将看到对应的效果。 更具体移步:点我, 其他手册,请执行 vimtutor 命令。 多使用vim来写代码,指令很多,指令的学习全都是在实践中体现的。一句话,“菜,就多练,输不起,就别玩。”[doge]

以上就是Linux开发工具——vim篇的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/8532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
淘宝售后是什么意思?工作内容有哪些?深入了解淘宝售后这一重要环节!
上一篇 2025年11月7日 11:14:12
七日世界海洋地图怎么样  七日世界海洋地图介绍
下一篇 2025年11月7日 11:15:15

相关推荐

  • vivoY系列微信收款语音播报如何设置?快速设置语音的实用方法

    先在微信内开启收款语音提醒,再确保vivo手机系统中微信的通知权限、后台运行和电池优化设置正确,避免静音或勿扰模式干扰,即可解决语音不响问题。 vivo Y系列手机上设置微信收款语音播报,核心在于微信应用内部的设置,同时需要确保手机系统层面的通知权限和后台运行策略没有限制它。简单来说,就是先在微信里…

    2026年9月22日
    000
  • win10系统图标(如此电脑)太大怎么办_win10系统图标大小调整方法

    首先通过快捷键Ctrl加鼠标滚轮可快速调整桌面图标大小,其次在显示设置中修改缩放比例能全局调整界面元素,最后若因间距异常导致图标过大,可通过注册表将IconSpacing和IconVerticalSpacing值改为-1125后重启生效。 如果您发现Windows 10系统中的图标(如“此电脑”)显…

    2026年9月22日
    000
  • CentOS7搭建个人站点

    CentOS7搭建个人站点CentOS7搭建个人站点CentOS7搭建个人站点CentOS7搭建个人站点

    在本文中,我们将指导您在centos7系统上使用httpd搭建个人网站。httpd是apache http服务器的主程序,设计为一个独立运行的后台进程,负责建立处理请求的子进程或线程池。 首先,我们需要通过rpm命令检查系统中是否已安装httpd: rpm -qa | grep httpd 如果执行…

    2026年9月22日 用户投稿
    200
  • 降压超频(Undervolting)在笔记本与显卡上的能效提升

    降压超频是通过降低芯片核心电压来减少功耗与发热并维持性能的技术。现代处理器和显卡因制造差异,厂商通常设置较高默认电压以确保稳定性,而降压则在保证系统稳定的前提下,去除冗余电压,实现更低功耗与温度。其核心原理为:降低电压→减少功耗与发热→降低风扇转速与电池消耗→提升续航、静音性及持续性能表现。在笔记本…

    2026年9月22日
    200
  • VSCode 怎样配置项目的依赖包自动安装 VSCode 项目依赖包自动安装的配置指南​

    VSCode 怎样配置项目的依赖包自动安装 VSCode 项目依赖包自动安装的配置指南​VSCode 怎样配置项目的依赖包自动安装 VSCode 项目依赖包自动安装的配置指南​VSCode 怎样配置项目的依赖包自动安装 VSCode 项目依赖包自动安装的配置指南​VSCode 怎样配置项目的依赖包自动安装 VSCode 项目依赖包自动安装的配置指南​

    vscode没有内置“一键安装所有依赖”功能,因为它作为通用编辑器需保持轻量与灵活性,无法预设所有项目的依赖管理逻辑;要实现类似效果,最有效的方法是通过配置tasks.json和launch.json实现半自动安装:1. 在项目根目录的.vscode文件夹中创建tasks.json文件,定义“che…

    2026年9月22日 用户投稿
    000
  • MAC的“自动操作”(Automator)怎么用_macOS自动操作创建快速工作流程

    使用Automator可创建自动化工作流程,通过选择“工作流程”并添加操作实现任务串联,保存为“快速操作”或“应用程序”便于调用,结合日历设置定时执行,并可嵌入Shell脚本扩展功能,提升Mac操作效率。 如果您希望在日常操作中提升效率,可以通过自动化重复性任务来节省时间。MAC的“自动操作”(Au…

    2026年9月22日
    000
  • MySQL服务无法启动怎么办?常见解决方法

    MySQL服务无法启动怎么办?常见解决方法MySQL服务无法启动怎么办?常见解决方法MySQL服务无法启动怎么办?常见解决方法MySQL服务无法启动怎么办?常见解决方法

    mysql服务无法启动常见原因包括配置错误、端口占用、数据文件损坏或权限问题。解决方法如下:1. 查看错误日志,定位问题根源;2. 检查配置文件是否存在语法错误或路径问题;3. 确认端口(如3306)未被占用;4. 核查数据目录的权限与完整性;5. 必要时修复或重置数据目录,甚至重新安装mysql。…

    2026年9月22日 用户投稿
    000
  • qq浏览器怎么设置信任此站点_QQ浏览器添加信任站点设置方法

    可通过设置中心或地址栏将网站添加为可信站点以解除QQ浏览器限制。首先打开QQ浏览器,点击菜单进入设置,选择“隐私与安全”中的“可信站点管理”,添加并保存目标网址;也可在访问页面时点击地址栏锁形图标,通过站点设置直接设为可信;若需临时访问,可在安全警告页点击“继续访问”或“仍然前往”实现临时放行,但不…

    2026年9月22日
    300
  • PHP递增操作符在条件语句中的应用_PHP条件判断与递增结合实践

    前置递增(++$i)先加1后返回新值,后置递增($i++)先返回原值再加1,影响条件判断结果;如$i=5时if($i++>5)不成立,因判断用的是5,之后$i变为6;循环中常见$count++控制次数,但复杂表达式如$a++&&$b++虽合法却降低可读性,应拆分以提升维护性;实…

    2026年9月22日
    100
  • windows怎么开启或关闭休眠模式_休眠模式启用与禁用设置

    首先通过控制面板或命令提示符启用或禁用休眠功能,其次可设置自动休眠时间以节能;操作路径包括图形界面调整与管理员命令执行,适用于Windows 11系统环境。 如果您发现Windows系统的休眠功能未启用或希望禁用该功能以释放磁盘空间,可以通过系统电源设置或命令行工具进行配置。休眠模式会将当前系统状态…

    2026年9月22日
    000
  • 如何在MiniToolMovieMaker中编辑AI视频?免费AI视频剪辑的教程

    如何在MiniToolMovieMaker中编辑AI视频?免费AI视频剪辑的教程如何在MiniToolMovieMaker中编辑AI视频?免费AI视频剪辑的教程如何在MiniToolMovieMaker中编辑AI视频?免费AI视频剪辑的教程如何在MiniToolMovieMaker中编辑AI视频?免费AI视频剪辑的教程

    MiniTool MovieMaker虽无AI生成功能,但可高效编辑AI生成的MP4、MOV等格式视频或图片序列。通过导入素材后,利用其剪辑、过渡、滤镜、文字、音频处理等功能,实现AI片段的精剪、色彩统一、无缝衔接与风格化输出。支持主流视频、图片及音频格式,兼容性好,适合个人创作者进行AI内容后期整…

    2026年9月22日 用户投稿
    500
  • VSCode如何调试JavaScript代码 VSCode调试功能的实战技巧

    要在vscode中调试javascript,首先需设置断点、配置launch.json文件、选择合适的调试环境并启动调试会话;2. launch.json至关重要,常见陷阱包括program路径错误、type类型不匹配、cwd设置不当、混淆launch与attach模式以及source map配置缺…

    2026年9月22日
    000
  • 华为MateView 32对决戴尔U3223QE:专业级显示器的色彩与护眼之战,为谁的眼睛买单更值?

    华为MateView 32侧重生态协同与竖屏效率,戴尔U3223QE强在高对比度面板与扩展性,选择取决于设备生态及工作需求。 华为MateView 32和戴尔U3223QE都是定位高端的专业显示器,但设计思路和侧重点有所不同。选哪款更“值”,关键看你的工作场景、设备生态和对特定功能的重视程度。它们在…

    2026年9月22日
    000
  • Linux内核13-进程切换

    进程切换,也称为任务切换、上下文切换或任务调度,本文将探讨linux内核中进程切换的实现。我们首先理解几个关键概念。 1.1 硬件上下文 每个进程都有自己的地址空间,但所有进程共享CPU寄存器。因此,在恢复进程执行前,内核必须确保挂起时的寄存器值被重新加载到CPU寄存器中。 这些需要加载到CPU寄存…

    2026年9月22日
    200
  • 如何修改MySQL的默认端口号?

    如何修改MySQL的默认端口号?如何修改MySQL的默认端口号?如何修改MySQL的默认端口号?如何修改MySQL的默认端口号?

    修改mysql默认端口号需编辑配置文件,核心步骤为:1.定位my.cnf或my.ini文件;2.在[mysqld]段落中修改或添加port参数;3.保存后重启mysql服务。更改端口主要出于避免冲突、提升安全性和适应网络策略考虑。连接时需在客户端工具或代码中指定新端口,如命令行加-p参数、编程语言连…

    2026年9月22日 用户投稿
    1200
  • safari浏览器如何阻止网站访问我的运动和方向数据_safari浏览器阻止网站访问运动方向数据

    首先关闭Safari对网站的运动与方向传感器权限,进入设置- Safari -网站-运动与方向,将默认行为设为拒绝;其次可针对特定网站单独管理权限,阻止可疑站点访问传感器;最后启用无痕浏览模式以增强隐私保护,限制网页对硬件的持续访问。 如果您在使用 Safari 浏览器时发现某些网站试图获取您的设备…

    2026年9月22日
    100
  • windows怎么查看系统稳定性历史记录_windows可靠性监视器使用方法

    可通过控制面板、运行命令、搜索功能或事件查看器打开可靠性监视器,查看系统稳定性评分及崩溃记录。 如果您想了解Windows系统的运行状况和历史稳定性,可以通过内置的可靠性监视器来查看详细的系统事件和稳定性评分。该工具会记录应用程序崩溃、Windows故障、硬件驱动问题等信息,并以图表形式展示。 本文…

    2026年9月22日
    000
  • 贝壳找房如何查看调价记录

    在房地产市场中,房价的起伏始终是人们关注的核心话题。对于准备购房或进行房产投资的人来说,掌握房屋价格的变化趋势显得尤为重要。作为国内知名的房产信息服务平台,贝壳找房提供了查看房源调价记录的功能,帮助用户更清晰地了解价格动态。 想要查看某套房源的调价记录,首先需要进入对应的房源详情页面。当你通过贝壳找…

    2026年9月22日
    000
  • 抖音短视频如何选择合适的BGM?音乐对流量影响有多大?

    抖音短视频如何选择合适的BGM?音乐对流量影响有多大?抖音短视频如何选择合适的BGM?音乐对流量影响有多大?抖音短视频如何选择合适的BGM?音乐对流量影响有多大?抖音短视频如何选择合适的BGM?音乐对流量影响有多大?

    选对bgm能显著提升抖音视频流量。bgm不仅烘托氛围,还影响算法推荐和用户停留;平台通过音乐判断视频类型与受众,节奏感强的音乐提高完播率,增强情绪共鸣促进互动;选音乐需结合内容调性、热门趋势与受众喜好,如搞笑类配明快音乐、美食类用温馨轻音乐,关注热榜与同类账号参考;常见误区包括音量过大、风格不符、盲…

    2026年9月22日 用户投稿
    100
  • 在 Linux 中如何强制停止进程?kill 和 killall 命令有什么区别?

    在日常工作中,您可能会遇到两个用于在 linux 中强制结束程序的命令:kill和killall。虽然许多 linux 用户熟悉kill命令,但使用killall命令的人相对较少。尽管这两个命令名称相似且目的相同(终止进程),但它们在使用方式和效果上有显著区别。 那么,kill和killall之间有…

    2026年9月22日
    100

发表回复

登录后才能评论
关注微信