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自动缩进等格式设置方法 的相关文章

  • 如何跳转到 vim 中不同选项卡内的标记?

    我使用 MacVim 通常会打开许多 选项卡 我希望能够在任何打开的文件中放置标记并在它们之间跳转 mK and K当标记位于同一个选项卡中时效果很好 但我必须使用gt找到选项卡 然后K找到标记 一定有更好的方法吗 这是一个快速而肮脏的技巧
  • vim可以实时监控文件的变化吗

    我的问题与此类似如何实时监控文本文件 https stackoverflow com questions 18632 how to monitor a text file in realtime但我想在vim中做 我知道我可以读取打开的文件
  • Emacs Evil“重复”(点)行为

    我的中有以下行 emacs define key evil normal state map M j lambda interactive evil next line 5 这使得文件中的导航变得更加容易 例如 与M j我在下面 5 行 所
  • 选项卡视觉选择

    In many GUIs when I select a section of text and then hit the Tab or Shift Tab button the selected section will indent i
  • Vim:如何交换两个字符?

    有没有快速更改的命令 Cnotrol to Control While in normal mode with your cursor on top of the first character to swap you can type x
  • 如何取消 Vim 中的粘贴操作?

    每当我不小心在 Putty 中右键单击 打开 Vim 时 我的剪贴板上就有相当多的文本 并且 Vim 启动了粘贴操作 该操作已经持续了大约十分钟 我不想丢失未保存的工作 有没有办法指示 Vim 停止粘贴文本 If you re in nor
  • 我可以使用 VIM 查看 Python 中函数的文档字符串吗?

    在 VIM 中编写 Python 时 有什么方法可以查看函数的文档字符串吗 例如 def MyFunction spam A function that foobars the spam returns eggs return foobar
  • 如何在vim中将菜单键(“应用程序键”)映射到Escape键?

    我认为使用菜单键退出 vim 的插入模式将是一件很棒的事情 使用 Super 键也很好 但我不确定是否可能 因为 Super 键是一个修饰符 无论如何 我找不到任何与此相关的内容 寻求您的帮助并提前致谢 我认为没有任何方法可以配置 Vim
  • 文件保存期间语法突出显示随机消失

    我正在使用 vim 编辑一些 python 文件 最近偶尔会出现在 vim 中保存缓冲区后语法高亮消失的情况 我尝试重置syntax on and set filetype python但无济于事 我根本不知道是什么原因导致了这个问题 所以
  • Vim langmap 中断插件 (bépo)

    我正在使用 b po 键盘映射 http bepo fr http bepo fr 并寻求完美的 vim 映射 So far I used a long list of noremap http bepo fr wiki Vim B C3
  • 在 VIM 中缩进文件夹中的所有文件

    我有一个包含数百个 TTL TeraTermLanguage 文件的文件夹 现在我想缩进所有这些文件 我已经创建了用于缩进的 teraterm vim 并使用 VIM 打开一个文件并执行 gg G 整个文件得到了正确的缩进 但是有什么方法可
  • Vim 中的空格作为制表符和退格键行为

    在我的 vimrc 中我有 set shiftwidth 4 set tabstop 4 set expandtab 当我点击 Tab 按钮时 设置为使用 4 个空格而不是 Tab 但是当我在 Tab 之后按退格键时 我需要退格所有 4 个
  • Vim / vi 生存指南

    基本的 vim 命令有哪些 新用户需要了解什么才能避免陷入麻烦 请每条评论一条命令 我发现不可替代的 因为它也可以在 vi 中使用 与 vim 的视觉模式不同 是标记 您可以用以下标记标记不同的点m 小写 然后是您选择的字母 例如 x 然后
  • Redhat Vim 中的可视化块插入

    我的 ec2 服务器附带了 redhat vim ec2 user vim version VIM Vi IMproved 7 2 2008 Aug 9 compiled Jul 7 2012 08 03 48 Included patch
  • 禁用 VIM 中的警告?

    有没有办法禁用 VIM 中的警告 特别是 当文件从只读变为可写时 我想禁用警告 12 我有一个脚本可以打开文件进行编辑 但 vim 认为文件已更改并发出警告 Thanks 我的 vimrc 中有以下内容 你应该只需要第二个 它将消息回显到状
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • 如何使用 Vim 和 Eclipse 提高 PHP5.3 项目的工作效率(可能使用 Eclim 与 Zend Studio 集成)

    在开发应用程序时 我总是努力提高生产力 在过去的几年里 我可以说我在提高生产力方面取得了良好的进展 但我仍然发现我需要更多的工具或方法 我需要更快地编辑并学习盲打 目前正在过程中 因此我发现需要转向 Vim 现在已经一年多了 我已经放弃了
  • Vim 函数插入带有传递参数的静态文本

    背景 I m interested in writing a function that assigned to keyboard shortcut s when invoked would 采取用户参数 计算值反映80 string le
  • 如何在VIM中设置文件的正确路径?

    每当我击中 pwd在 vim 中命令总是返回路径C Windows system32 即使我在桌面上的 Python 文件中 所以每当我跑步时 python 命令返回 python can t open file Users myname
  • vim 上有 cit、dit、yit(更改、删除、拉入标签内)...是否有类似坑(粘贴在标签内)之类的东西?

    使用 vim 我习惯了像这样的运动命令cit dit yit编辑 html xml 文件时 我喜欢 使用此命令后甚至更多 因为我只需按一下按键即可重复我所做的事情 我想知道是否有类似坑 粘贴在标签内 的东西已经可用 它会删除标签内并粘贴我想

随机推荐

  • 【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 对所有用户都有效 而在每