VIM自动缩进等格式设置方法

2023-05-16

(1)VIM的环境是根据读取的配置文件来设定的,配置文件的位置通常在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。

(2)设置语法高亮

if has("syntax")

    syntax on

endif

或者直接syntax on

注意:如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:export TERM=xterm-color

(3)设置自动缩进

set autoindent,即每行的缩进值与上一行相等,使用 set noautoindent 可以取消设置

当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”

set cindent,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。

set smartindent,在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),则取消缩进形式。此外还增加了识别C语言关键字的功能。如果一行是以#开头的,那么这种格式将会被特殊对待而不采用缩进格式。

(4)设置制表符等于多少空格

set tabstop=4
set softtabstop=4(设置软制表符)

软制表符表示在Insert模式的时候按退格键时退回缩进的长度,当使用expandtab 时特别有用。

(5)显示行号

set number或简写为set nu

(6)更改缩进方式

set shiftwidth=4 表示每一级缩进的长度为4个空格,一般设置成跟 softtabstop 一样的值
当set expandtab 时,缩进用空格来表示,而set noexpandtab 则是用制表符表示一个缩进。

不应让set expandtab对所有情况都生效,因为Makefile或makefile文件中要求必须使用制表符来分割命令,而如果使用了vim编辑这些文件,制表符被自动换成空格,则会出现问题。

可使用如下命令来对设置只对特定类型文件启用expandtab,

if has("autocmd")

    autocmd BufRead,BufNewFile *.c, *.h set expandtab

endif

(7)短暂显示括号匹配

set sm(是set showmatch的简写),当你输入右括号,如}]),会自动跳到相匹配的括号处,闪动一下,不影响你继续输入,时间也可以自己设置,如下:

set matchtime=1(匹配时间,单位是十分之一秒)

(8)括号自动匹配添加

inoremap ( ()<LEFT>
inoremap { {}<LEFT>
inoremap [ []<LEFT>

(9)以特殊字符或字符串来显示制表符

set list

set listchars=tab:>-    (这里是设置要显示哪些字符,没有被设置的不会被显示)

设置后,制表符将会被显示为>---,后面多余的空白字符显示为-。


(z)注意,可以在Normal mode中键入:set命令来临时取消一些配置,比如:set nonumber会临时取消配置的显示好好的功能,其他类似。




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VIM自动缩进等格式设置方法 的相关文章

  • Linux/Ubuntu 目录位置 ~/.vim/syntax/

    文件夹的默认位置在哪里 vim syntax 在Linux系统上 我正在尝试添加一个 Python 插件 您正在寻找 runtimepath 选项 该文档非常详细 使用 help runtimepath 但我会尝试在这里总结一下 The 运
  • 在 Archlinux 上使用 Vim 作为 Haskell 的 IDE 目前情况如何?

    如果可行的话 我的目标是通过 YouCompleteMe 在 Vim 中完成 Haskell 的命令 在这方面 正如您在下面看到的 我还没有找到关于如何让它发挥作用的共识 相关评论的最新评论YouCompleteMe 上的问题 https
  • 在 Vim 中平滑滚动的最佳方法是什么?

    Vim 中的主要滚动命令是 Ctrl B and Ctrl F as well as PageUp and PageDown scroll by full page Ctrl U and Ctrl D scroll half a page
  • Vim 和 snipMate(插件)- 添加新代码片段不起作用

    我正在尝试为我的 snipMate 插件创建一个新的片段 我使用一些名为 即 myfile endfile 的文件 所有 endfile 文件都应具有与 html 文件相同的 片段 所以我做了 cp html snippet endfile
  • 是否可以在没有 GUI 的情况下使用 Vim 的客户端服务器功能?

    我用 Homebrew OS X 编译了 Vim 如下所示 brew install vim with client server And the version请求确实证实了这一点 a gt usr local bin vim versi
  • gvim中的鼠标输入

    标准鼠标输入可以在 vim 中自定义吗 在我的例子中是 vim 插件也是可以接受的选择 我特别感兴趣的是 覆盖 双击某个单词 这样 gvim 就不仅仅是突出显示该单词 而是进行搜索 从而突出显示文件中该单词的所有实例 我在其他编辑器中看到过
  • 如何在 IdeaVIM 中配置 Vim 的 Ctrl + N 和 Ctrl + P 补全?

    在Vim中我们可以使用Ctrl N or Ctrl P完成代码补全 如何在 IdeaVim for IntelliJ 中配置它 Alt and Alt Shift 既可以在普通 IntelliJ 中工作 也可以在安装了 IdeaVim 的情
  • 在 vim 中设置文本宽度而不覆盖特定于文件类型的内容

    我希望 vim 中默认的文本宽度为 80 但如果特定文件类型有自己的文本宽度 特别是 gitcommit 其中 tw 72 我希望 vim 尊重该宽度 在我的 vimrc 中 我有以下行 set tw 80 我也尝试过 setlocal t
  • git commit 保存 vim 文件时出错

    我正在遵循简单的 git 指南nettuts 简易 git 指南 http net tutsplus com tutorials other easy version control with git 我在我的中初始化了一个空的 git 实
  • Vim 重复点(“.”)命令缓冲区?

    我真的很喜欢 YankRing 的行为 它让我可以访问我最近完成的几件事y固定或d已删除或c不假思索地被吊死了 然而 这样的补充功能对于 重复命令 最常见的是当我键入我真正想重复的内容时 然后按x清理一些东西 通常 可以通过视觉模式拉动我刚
  • 如何在 Vim 中特定列的所有行中插入特定字符?

    Dates Name Date Battle of the Plains of Abraham September 13 1759 Proclamation Act October 07 1763 Stamp Act March 22 17
  • 如何在 Vim 中使 shift+空格键向上翻页?

    我的 vimrc 中有一个条目 当我按空格键时 它会在视口中向下翻页 它看起来像这样 map
  • VIM 分块插入

    我想在 VIM 中选定的文本块的开头插入一个哈希 Ruby 注释 我在可视模式下选择了线条 但如何对所有线条执行相同的操作 您有两个主要选择 在块视觉模式中选择 ctrl v 然后使用I沿着整个块的左侧插入相同的东西 相似地A追加 看分块运
  • 如何在 Vim 中创建带有控件和功能键的映射?

    我想要一个映射来快速退出所有缓冲区 以便在我对大量文件进行 vimdiff 时使用 事实证明 Control 和功能键在一起具有很好的安全性 这样我就不会不小心按下这个组合 无意中离开 Vim 我尝试了以下映射 map
  • 在 Vim 的 `autocmd` 命令中调用函数

    我想使用expand函数在一个autocmd 特别是 我正在改编tip https stackoverflow com questions 1240037 recommended build system for latex 1394702
  • Windows 上 gnu make 的 libintl3 和 libiconv2 在哪里,需要在 MinGW 上用 ruby​​ 编译 vim

    我正在尝试为 Windows 运行 gnu make 但它无法运行 因为libint3 dll没找到 果然 http gnuwin32 sourceforge net packages make htm http gnuwin32 sour
  • 如何从 Bash 命令行在后台 Vim 打开另一个文件?

    我正在从使用 Gvim 过渡到使用控制台 Vim 我在 Vim 中打开一个文件 然后暂停 Vim 在命令行上运行一些命令 然后想返回到 Vim Ctrl Z 在正常模式下 暂停 Vim 并返回到控制台 fg可用于将焦点返回到 Vim job
  • 如何设置 Vim 进行 Android 开发?

    谁能描述一下用于 Android 开发的良好 Vim 设置吗 我现在使用 Eclipse 但我真的很想使用 Vim 因为它更快 而且我更喜欢它 例如 我对 Eclim 不感兴趣 我对使用哪些 Vim 插件 用于 Java 自动完成等 如何
  • C# - 使用 Vim 作为主编辑器 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经喝了酷乐了 Vim 优雅美丽 我必须学习如何使用它并配置它以拥有一个出色的编译器 这是最好的学习方式 问题是 我从哪里开始 是否有一个很好的教程
  • Vim 在 Mingw 上表现异常

    我在 MinGW 4 6 2 上的 Vim 表现得很奇怪 例如 在插入模式下按 Backspace 会删除字符 但我必须用箭头键移动光标才能删除的字符消失 而且它也会使我退出插入模式 另一个例子 按 Del 删除字符有时会生成奇怪的字符 例

随机推荐

  • 【linux】详解linux 下安装软件tar.gz, rpm,deb的方法

    在Linux系统中 xff0c 软件安装程序比较纷繁复杂 xff0c 不过最常见的有两种 xff1a 1 xff09 一种是软件的源代码 xff0c 您需要自己动手编译它 这种软件安装包通常是用gzip压缩过的tar包 xff08 后缀为
  • 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第 几号的那位。

    问题 xff1a 有n个人围成一圈 xff0c 顺序排号 从第一个人开始报数 xff08 从1到3报数 xff09 xff0c 凡报到3的人退出圈子 xff0c 问最后留下的是原来第 几号的那位 解决思路 我的解决思路是先给这n个人排序生成
  • 【AtCoder】【模拟】【模型转化】Camel and Oases(AGC012)

    题意 xff1a 有一个骆驼 xff0c n个绿洲遍布在数轴上 xff0c 第i个绿洲的坐标为x i xff0c 保证x i 单增 骆驼的驼峰有体积初始值V 当驼峰的体积变为v的时候 xff0c 驼峰中至多只能够存储v L的水 骆驼希望走完
  • windows10远程桌面登录ubuntu20.04

    一 ubuntu系统共享设置 设置远程共享密码 xff0c 密码要记住 xff0c 一会在windows远程登陆的时候 xff0c 第二步要输入密码 二 安装xrdp sudo apt get install xrdp 三 安装dconf
  • 配置ArchLinux系统

    配置ArchLinux系统环境 文章目录 配置ArchLinux系统环境配置 96 AUR 96 中国源桌面环境安装登录管理器安装字体与其他附加组件安装驱动安装中文输入法安装 xff1a 优化配置 96 TRM 96 磁盘优化 96 tlp
  • Linux字体推荐

    Linux字体推荐 以下是Linux推荐的字体在不同Linux发行版的不同包装名称 xff0c 每款都很精致 xff0c 请欣赏 xff01 ArchLinux字体软件包名称Debian字体软件包名称Fedora字体软件包名称Gentoo字
  • 安装配置fcitx输入法

    安装配置fcitx输入法 文章目录 安装配置 96 fcitx 96 输入法安装输入法引擎可用的 96 fcitx 96 输入法包括 xff1a 中文日文其语言 可用的 96 fcitx5 96 输入法包括 xff1a 中文日文其他语言 输
  • 使用adb安装或卸载卸载手机系统应用

    使用adb安装 卸载手机系统应用 准备工具 在浏览器下载并打开带有adb的工具 xff1b 手机打开 开发者选项 xff0c 在 开发者选项 中开启usb调试并连接电脑 xff0c 手机端选择 传输文件 xff1b 在手机端点击 一律允许计
  • OpenWRT好用的插件

    PPP xff08 连接Internet共享 xff09 xff1a 用于让路由器到外网的连接 xff1b 资源占用小 xff0c 官网有相应版本可供下载 xff0c 软件包名称为 ppp mod pppoe Adblock xff08 广
  • Gentoo Linux查看已安装软件包

    Gentoo Linux查看已安装软件包 对于Gentoo Linux xff0c 需要一个名为Equery的软件来查看已安装软件包的信息 Equery是一个用于简化常用 Portage 操作的工具 此外 xff0c 可以显示包依赖项 元数
  • 2016 Personal Training #4 Div.2 A B C G H

    xff21 URAL 2091 题意 xff1a 有四个类别 xff11 xff0e xff21 和 xff22 都包含 xff0c xff12 xff0e 只包含 xff21 不包含 xff22 xff0c xff13 xff0e 只包含
  • Gentoo Linux系统清理

    Gentoo Linux系统清理 一 清除源码包文件 清除已经下载的软件包 xff0c 步骤如下 xff1a 在这一步中 xff0c 所使用的工具是rm命令 xff0c 将会强制删除 使用前 xff0c 请仔细检查所要删除的目录是否正确 x
  • Gentoo Linux卸载无用内核

    Gentoo Linux卸载无用内核 移除内核源代码 在安装新的内核并正常工作之后 xff0c 旧的内核就可以移除了 emerge的 depclean 选项 xff08 缩写为 c xff09 可以用来移除所有旧的或者不用的软件版本 xff
  • flink学习(一)---Maven配置简单易学

    一 下载Maven 进入官网http maven apache org 点击Download 进入官网之后 xff1a 我演示的是windows的配置步骤 xff1a 1 将安装包放入C盘 xff0c 进行解压 xff0c 将maven文件
  • eclipse括号风格改为独占一行风格

    一 原Eclipse生成的花括号 情形 public class test public static void main String args System out println 34 Eclipse 的花括号 xff08 brace
  • SecureCRT按Ctrl+S后假死问题

    SecureCRT作为著名的SSH客户端 xff0c 经常用于登陆远程服务器 在上面编辑文本 xff0c 特别是用vi打开两个文本 xff0c 并且需要切换时 xff0c 很容易出现卡死的现象 xff0c 不能接受任何的键盘输入 很是郁闷
  • dll和lib(包括静态链接库和与dll同时生成的lib)

    1 xff1a 神马是Dll和Lib xff0c 神马是静态链接和动态链接 大家都懂的 xff0c DLL就是动态链接库 xff0c LIB是静态链接库 DLL其实就是EXE xff0c 只不过没main 动态链接是相对于静态链接而言的 所
  • Doxyfile的使用

    Doxygen是一个开源软件 xff0c 它类似javadoc xff0c 能够根据源代码和源代码中特定格式的注释 xff0c 生成文档和UML图 xff08 如果要生成UML图 xff0c 需要下载可选组件Graphviz xff09 的
  • 微软亚洲研究院(MSRA)面经

    我最早把简历投给MSRA是在美国交换的时候 xff0c 大概11月左右吧 不过估计是因为那时候我人也不在国内 xff0c 11月也是个收实习生的淡季 xff0c 没什么空位子 xff0c 所以在美国期间他们也并没有打国际长途联系我 后来1月
  • VIM自动缩进等格式设置方法

    xff08 1 xff09 VIM的环境是根据读取的配置文件来设定的 xff0c 配置文件的位置通常在目录 etc 下面 xff0c 有个名为vimrc的文件 xff0c 这是系统中公共的vim配置文件 xff0c 对所有用户都有效 而在每