14 个 Vim 启动参数和启动方法详解

本贴最后更新于 1985 天前,其中的信息可能已经渤澥桑田

打开 Vim 最简单的方式是在 bash 命令行下直接输入 vim 后按回车键启动。除此之外,Vim 还有非常多实用而又不为人熟知的启动参数。本文以打开当前目录下的 test.txt 文件为例举例说明 Vim 常用的 14 个启动参数的含义和作用。

  • vim -o[n] test.txt:以水平方向分割 n (可省略,缺省为 1) 个窗口的方式打开 test.txt

  • vim -O[n] test.txt:以垂直方向分割 n (可省略,缺省为 1) 个窗口的方式打开 test.txt (Vim 屏幕分割)

VIM 分割屏幕

  • vim + test.txt:打开文件 test.txt 并跳转到从文件的最末行

  • vim +n test.txt:打开文件 test.txt 并跳转到文件的第 n

  • vim -c cmd test.txt: 在打开文件 test.txt 前,先执行指定的 Vim 命令 cmd

  • vim -x test.txt:以加密方式打开文件 test.txt,并在屏幕左下角提示输入密码两次才可进行操作,保存文件退出后必须输入正常密码才能正确打开 test.txt 文件,否则会显示乱码

vim 加密文件

  • vim -r test.txt: 恢复上次异常退出的 test.txt 文件,如果 test.txt 的 swap 文件不存在,会提示 No swap file found for test.txt 并退出 Vim

  • vim -M test.txt:以只读方式打开 test.txt 文件,且不可以强制保存该文件

  • vim -R test.txt: 以只读的方式打开文件 test.txt,但可以强制保存该文件

  • vim -b test.txt:以二进制模式打开 test.txt,该模式下一些特殊字符 (如换行符 ^M) 都可以显示出来。如删除 Vim 文件中显示的 ^M 字符一文所介绍,通过 -b 参数以二进制模式打开文件后便可将 ^M 显示出来

  • vim +/target test.txt:打开 test.txt 并将光标移动到找到的第一个 target 字符串上

  • vim u myvimrc test.txt:使用 myvimrc 配置文件打开文件 test.ext 而不是加载 ~/.vimrc 文件,vim -u NONE test.txt 表示在启动 Vim 打开 test.txt 文件时不加载任何 Vim 配置文件

  • vim -i myviminfo test.txt:打开 test.txt 文件时从 myviminfo 文件中读取历史命令而不是从默认的 ~/.viminfo 文件中读取,推荐阅读 viminfo 文件介绍与使用

  • vim -d test.txt test2.txt:使用 Vim 同时打开 test.txt 和 test2.txt 两个文件并 diff 两个文件的差异。Vim 屏幕将被垂直分割为两个窗口,被 diff 的两个文件中连续相同的行将被折叠起来。默认 Vim 配色下,只在某一文件中存在的行以蓝色背显示,而在另一文件中的对应位置将显示绿色;两个文件中都存在但包含差异的行会以粉色背景显示,而引起差异的文字将用红色背景突出显示

vimdiff

除上述常用的 Vim 启动参数,还可以在命令行下输入 vim --hep 获取到 Vim 所有启动参数的介绍。除了了解怎么启动 Vim,你还可以看 14 种退出 Vim 的方法及区别

  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    952 引用 • 944 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    588 引用 • 3538 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1243 回帖 • 411 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 46 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 2 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    163 引用 • 310 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 3 关注
  • OneNote
    1 引用 • 3 回帖
  • 叶归
    5 引用 • 16 回帖 • 11 关注
  • 电影

    这是一个不能说的秘密。

    122 引用 • 608 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 24 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 408 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 285 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 8 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    31 引用 • 108 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    66 引用 • 114 回帖 • 197 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    367 引用 • 1844 回帖 • 3 关注
  • Anytype
    3 引用 • 31 回帖 • 13 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 553 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖