我如何制作vi - Vim从不使用制表符(将空格转换为制表符,不好!),制作Tab键== 4个空格,并在像Emacs这样的大括号块之后自动缩进代码?

另外,如何保存这些设置,以便我再也不必输入它们?

我已经看到了与此相关的其他问题,但它似乎总是与我想要的有点不同。


#1楼

要在大多数文件中使用4个空格的选项卡,在Makefile中使用真正的8-wide tab char,并在包括C / C ++在内的各种文件中自动缩进,请将其放在~/.vimrc文件中:

" Only do this part when compiled with support for autocommands.
if has("autocmd")" Use filetype detection and file-based automatic indenting.filetype plugin indent on" Use actual tab chars in Makefiles.autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif" For everything else, use a tab width of 4 space chars.
set tabstop=4       " The width of a TAB is set to 4." Still it is a \t. It is just that" Vim will interpret it to be having" a width of 4.
set shiftwidth=4    " Indents will have a width of 4.
set softtabstop=4   " Sets the number of columns for a TAB.
set expandtab       " Expand TABs to spaces.

#2楼

建议的方法是使用基于文件类型的缩进,并且只使用smartindent和cindent,如果这还不够。

将以下内容添加到.vimrc中

set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on

希望它有助于作为一个不同的答案。


#3楼

正如下面的几个答案所指出的,现在首选的方法不是使用smartindent,而是使用以下(在你的.vimrc中 ):

filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

在 .vimrc:文件中:

 set smartindent set tabstop=4 set shiftwidth=4 set expandtab 

帮助文件需要一些时间来习惯,但是你读的越多,Vim就越好:

 :help smartindent 

更好的是,您可以在源代码中嵌入这些设置以实现可移植性:

 :help auto-setting 

要查看您当前的设置:

 :set all 

作为 graywh在评论中指出,smartindent已取代cindent其中“作品更巧妙”,但主要还是与类似C的语法的语言:

 :help C-indenting 

#4楼

自动缩进基于当前语法模式。 我知道如果你正在编辑Foo.java,那么输入一个{并按下Enter键缩进以下行。

至于标签,有两种设置。 在Vim中,键入冒号然后“设置tabstop = 4”,这将设置选项卡显示为四个空格。 再次点击冒号并输入“set expandtab”,它将为制表符插入空格。

您可以将这些设置放在主目录中的.vimrc(或Windows上的_vimrc)中,这样您只需键入一次即可。


#5楼

在许多Linux系统上,如Ubuntu,默认情况下.vimrc文件不存在,因此建议您先创建它。

请勿使用主目录中存在的.viminfo文件。 它用于不同的目的。

第1步:转到您的主目录

cd ~

第2步:创建文件

vim .vimrc

第3步:添加上述配置

filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab

第3步:按Shift + ZZ保存文件。


#6楼

相关的,如果你打开一个同时使用制表符和空格的文件,假设你已经有了

set expandtab ts=4 sw=4 ai

您可以使用整个文件中的空格替换所有选项卡

:%retab

#7楼

编辑你的〜/ .vimrc

$ vim ~/.vimrc

添加以下行:

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

#8楼

来自VIM维基 :

:set tabstop=4
:set shiftwidth=4
:set expandtab

#9楼

获取特定于文件类型的缩进的最佳方法是在vimrc中使用filetype plugin indent on 。 然后,您可以在.vim / ftplugin / c.vim中指定set sw=4 sts=4 et ,而不必为正在编辑的所有文件创建全局文件,其他非C类型语法将正确缩进,太(甚至是lisps)

Tab键== 4个空格并在Vim中的花括号后自动缩进相关推荐

  1. Linux中设置tab4个空格,linux下vim中tab设置为4个空格例子

    在大多数的文件中使用4个空格的tab,在Makefile中使用真正8个宽度的tab, 同事基于文件的类型自动缩进. 编辑 vim ~/.vimrc 如文件不存在新建,文件已存在,追加在尾部 添加 &q ...

  2. c语言缩进用tab还是空格,程序员编码首行缩进使用Tab键好还是空格好?

    [本文转载自CocoaChina] 每个程序员都有自己喜欢的编码风格以及编码习惯,那么,问题来了. 一个很常用也很简单的问题,让程序员分为两派.编程时,到时是使用Tab按键来进行首行缩进好呢还是敲空格 ...

  3. 编码首行缩进使用Tab键好还是空格好?

    每个程序员都有自己喜欢的编码风格以及编码习惯,那么,问题来了. 一个很常用也很简单的问题,让程序员分为两派.编程时,到时是使用Tab按键来进行首行缩进好呢还是敲空格按键好呢???少侠,别急,带老夫给你 ...

  4. 记事本中TAB键替换为空格键的方法

    转载自:http://blog.sina.com.cn/s/blog_6ce5d9fb0101hxkt.html 工作中需要将一些TAB键转换为空格键,需要的步骤如下: 原始数据如 01025    ...

  5. vim粘贴代码的时候取消自动缩进

    问题 经常需要粘贴一段代码进vim里,但是vim里默认是自动缩进的, 所以导致粘贴的代码的每一次缩进都多了一层,对于python这样的代码而言,缩进混乱肯定会导致无法执行,所以需要在粘贴的时候取消自动 ...

  6. mysql tab键替换为空_记事本中TAB键替换为空格键的方法

    在编程过程中我们一般不希望用TAB符,但由于有些代码并不是自己编写,难免存在TAB符,下面说一下怎么利用ultraedit编辑器来查找和替换. untraedit中显示TAB和显示空格,以及换行用同一 ...

  7. VSCode 将已编辑好的文件中的 tab 键转换成空格键

    step1: 工具栏 Edit-->replace step2: 输入"\t",点击上图右上方红框按钮,点击上图所示右下方红框按钮.

  8. jsp 如何让mysql数据库空值 返回为空格_jsp在mysql中查值传值后放文本中出现空格是怎么回事哪的问题...

    第一页部分代码-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/l... 第一页部分代码 /p> ...

  9. vim中tab键8空格换4空格

    前言 很多时候,都看不惯vim中tab键8个空格,觉得这个空格实在是太长了,浪费屏幕,那么现在就让你解决掉8个tab键8个空格,换成4个空格. 具体步骤 打开文件:/etc/vimrc vim /et ...

最新文章

  1. 人脸服务器如何与门禁系统对接,人脸识别门禁系统终端设备接口说明
  2. linux python 调试_Python教程:4环境变量与集成开发
  3. Playfair加密算法(C 实现)
  4. Interactive cloth
  5. UVA665 LA5658 False coin【暴力】
  6. SpringMVC实现AJax以及RestFull风格
  7. 如何自学成为设计师_不会自学,你永远只能是个三流设计师
  8. Scala 安装教程
  9. 【信息系统项目管理师】信息系统项目管理师计算题汇总
  10. 意外把移动硬盘标记为活动分区怎么办?
  11. RabbitMQ Federation 插件使用
  12. 一般app测试的最佳方法
  13. windows服务器上无法运行bat文件,ad域用户bat脚本运行不了
  14. 全球及中国电子级无水氟化氢发展动态与未来需求趋势预测报告2021~2026年
  15. 工厂模式的缺点及解决到生产的应用
  16. KNN和Kmeans
  17. vue项目获取下拉框选中id_vue获取下拉框值
  18. 如何将json数据并格式化—html
  19. 微信小程序的校园二手物品交易平台系统 uniapp 小程序
  20. WEB开发之HTML与CSS够用即可-庞永旺-专题视频课程

热门文章

  1. Hudson 之旅(二)
  2. 一个生成验证码的Jsp页面
  3. 关于Fedora8中DNS配置问题解决
  4. JavaScript:年月日時分秒設置
  5. Windows10下python3.5的sklearn库安装
  6. MFCC/Filter Bank的提取流程
  7. centos7下cups + samba共打印服务的教程
  8. Xcode7中你一定要知道的炸裂调试神技(转)
  9. CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows  linux
  10. 解决eclipse启动停在一个空白窗口的问题