我的答案中的这些命令在vim中工作。大多数认为他们正在使用vi的人正在使用vim。要确定你的’vi’是否真的是’vim’,打开vi并键入:version – 如果是vim,它会这样说。否则,您可能只看到没有程序名称的版本号。此外,当您第一次打开vim时,您通常会看到一些“VIM – VI iMproved”的启动屏幕。

自动缩进

要打开自动缩进功能,请确保vim知道您正在编辑的文件类型(它通常会从文件扩展名自动检测到,但可能无法使用某些文件类型)。您可以使用菜单对其进行语法突出显示。然后,这样做:

:filetype indent on

您可以禁用自动缩进

:filetype indent off

自动调整/修正缩进

一般来说,= {motion}将代码缩进到缩进级别。

> ==对齐当前行

> = i {对齐内部块

> =%对齐到光标下的匹配括号/括号

> = 14j或14 ==对齐接下来的14行

> = G对齐到文件的末尾

> vG =相同的东西,对齐到最后

文件(但使用可视化模式)

> vjjj =对齐四行(使用可视化模式)

手动缩进

如果vim没有正确地猜测缩进级别,可以通过两种方法来改变它:

>如果您处于正常模式(其中所有内容都是命令),请执行<>>将其右移一个选项卡。您可以通过使用上面显示的相同的运动命令(例如> i {缩进当前的内部代码块),通过几行执行此操作。

>如果您处于插入模式,则可以通过执行Ctrl-T进一步缩进行(不移动光标),或者使用Ctrl-D取消缩进一个选项卡

对齐等于标志等

调整缩进/标签尺寸

如果您希望vim在缩进时使用空格而不是制表符,请运行此命令(或者考虑将其添加到您的vimrc文件)

:set expandtab

要设置多少空格等于一个选项卡,我通常这样做:

:set expandtab softtabstop=3 tabstop=3 shiftwidth=3

> tabstop – 选项卡计数的列数(影响现有制表符字符的显示)

> shiftwidth – 使用<,以及其他命令。

> softtabstop – 按Tab键可插入多少空间

> expandtab – 将选项卡键扩展到空格

但是,如果您必须使用不同数量的选项卡,您还可以使用此功能和键盘绑定:

function! Ktabs(tabsize)

execute "set softtabstop=" . a:tabsize . " tabstop=" . a:tabsize . " expandtab shiftwidth=" . a:tabsize

"set softtabstop=a:tabsize tabstop=a:tabsize expandtab shiftwidth=a:tabsize

endfunction

noremap :call Ktabs(3)

如果要使用选项卡和空格的混合编辑文件,则可能需要在设置选项卡大小后使用此命令:

:retab

linux中vi大括号enter缩进,格式 – 如何在vi中对齐代码(大括号,括号等)?相关推荐

  1. matlab中10的负几次方怎么表示,matlab中e负2次方 数学中2e-01T表示什么含义,如何在MATLAB中实现?...

    数学中2e-01T表示什么含义,如何在MATLAB中实现? 这个简单啊,就是E是弹模,v是泊松比,2.63e-2指的是2.63乘以10的-2次方,T估计指的是温度吧 请问matlab里面exp函数怎么 ...

  2. ue怎么转换html格式,如何在UltraEdit中预览HTML代码?

    原标题:如何在UltraEdit中预览HTML代码? UltraEdit是一款功能非常强大的文本编辑器,可以进行文本编辑.十六进制处理.ASCII码转换等,是系统自带记事本的优秀替代品. 图1:UE软 ...

  3. word中 有注释标签吗_如何在Word中注释图像

    word中 有注释标签吗 If you're writing a document that includes images, you may want to add annotations to t ...

  4. python中2d_【IT专家】如何在Python中复制一个2D数组?(复制)

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 如何在 Python 中复制一个 2D 数组? ( 复制 ) 如何在 Python 中复制一个 2D 数组 ?( 复制 )[ 英 ]How to  ...

  5. python中none是什么类型_如何在Python中”测试”None类型?

    我有一个方法,它有时返回一个非类型的值.那么我怎样才能质疑一个非类型的变量呢?例如,我需要使用if方法 if not new: new = '#' 我知道这是错误的方式,我希望你理解我的意思. 我想这 ...

  6. cmd中加载java源文件_如何在cmd中编译和运行java源文件

    如何在cmd中编译和运行java源文件 首先写一个名为HelloWorld.java的java源文件,存储在如C:/java/src的地址,我们再假设待会要存储的位置是C:/java/bin,则我们做 ...

  7. php oracle 操作 sql语句中能不能添加数组_如何在PHP中使用Oracle数据库_php

    在php3.0以上版本中,php内置了几乎目前所有的数据库处理函数,包括oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库. PHP提供了2大类API(应用程序接口 ...

  8. java中md5加密和解密_如何在java中实现md5加密和解密

    如何在java中实现md5加密和解密 关注:273  答案:1  mip版 解决时间 2021-01-19 20:37 提问者精神疯裂 2021-01-19 05:36 如何在java中实现md5加密 ...

  9. android中fragment如何保存edittext文本,如何在Android中使用DialogFragment进行文本输入?...

    我想获得一个值,用户输入到一个对话框,使用建议的DialogFragment类为它,对话框构造和运行良好,但我不能返回EditText参数的值父类,没有得到一个空值指针异常.如何在Android中使用 ...

最新文章

  1. [转]CSS3 transform顺序问题
  2. (三)页面之间的参数传递
  3. 使用分支限界法解决单源最短路径问题。
  4. 线程下的udp和tcp局域网聊天
  5. java移动端接口测试_走进Java接口测试之测试框架TestNG数据驱动(入门篇)
  6. 谈一下关于CQRS架构如何实现高性能
  7. c#获取应用程序路径的方法
  8. 【参赛作品19】【openGauss】gsql客户端工具(二)gsql客户端工具之Data Studio客户端工具
  9. Globle Get 多线程下载系统
  10. 利用mybatis插件开发动态更改sql
  11. Access操作必须使用一个可更新的查询
  12. crm登录系统是什么系统?
  13. C#中如何调出工具箱
  14. Java8 effectively final
  15. 这可能是最全最好的BLAST教程
  16. 全面理解Web3.0时代
  17. linux ln -s
  18. model(**inputs)备忘
  19. 创意发明:带分频整形的单片机频率计(1Hz—20MHz)源程序,仿真与设计论文等全套资料
  20. 网络支付结算{网银、第三方支付、超级网银}

热门文章

  1. Mysql函数示例(如何定义输入变量与返回值)
  2. Mysql select into outfile NULL值导出的处理方法
  3. java filereader 示例_J04-Java IO流总结四 《 FileReader和FileWriter 》
  4. sql 问号的使用 php_PHP中bindParam和bindValue的区别
  5. Linux驱动设计之信号量
  6. tf.gather( )的详细解析
  7. Python 的装饰器执行顺序问题(二)
  8. Zend Studio 0x80070666错误解决
  9. 第三章 使用Servlet处理HTTP响应
  10. centos 6.3 x86_64安装32位JDK的问题