博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将标签重新定义为4个空格
阅读量:3575 次
发布时间:2019-05-20

本文共 4267 字,大约阅读时间需要 14 分钟。

我目前的设置假设8个空格; 我怎么能重新定义它?


#1楼

我将其复制并粘贴到我的.rc文件中:

" size of a hard tabstopset tabstop=4" always uses spaces instead of tab charactersset expandtab" size of an "indent"set shiftwidth=4

前两个设置意味着当我按Tab键时我得到4个空格。 第三个设置意味着当我做V> (即视觉和缩进)时,我也得到4个空格。

不像接受的答案那么全面,但它可能会帮助那些只想要复制和粘贴的人。


#2楼

这取决于你的意思。 您是否希望文件中的实际制表符显示为 4个空格宽,或者“tab”是否实际上是指通过按Tab键生成的缩进 ,这将导致文件字面上包含(最多)4个空格字符你输入的每个“标签”?

根据您的答案,以下设置之一应该适合您:

  • 对于出现4个空格宽的制表符

    set tabstop=4

    如果您在源代码中使用实际制表符,则可能还需要这些设置(这些实际上是默认设置,但您可能希望以防御方式设置它们):

    set softtabstop=0 noexpandtab

    最后,如果您希望缩进对应于单个选项卡,您还应该使用:

    set shiftwidth=4
  • 对于包含4个空格字符但使用Tab键输入的缩进

    set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab

要使上述设置永久添加到您的 。

如果您需要进行调整,或者只是想了解这些选项的含义,这里是每个选项的含义细分:

tabstop

在“空格”中测量的硬tabstop的宽度 - 实际上是实际制表符的(最大)宽度。

shiftwidth

“缩进”的大小。 它也是在空格中测量的,所以如果您的代码库用制表符缩进,那么您希望shiftwidth等于制表符的数量乘以tabstop 。 这也用于=><命令之类的东西。

softtabstop

将此设置为tabstop以外的非零值将使Tab键(在插入模式下)插入空格组合(以及可能的选项卡)以模拟此宽度处的制表位。

expandtab

启用此选项将使Tab键(在插入模式下)插入空格而不是制表符。 这也会影响retab命令的行为。

smarttab

启用此选项将使tab键(在插入模式下)插入空格或制表符,以便当光标位于行的开头时(即前面的唯一字符是空格),转到下一个tabstop的下一个缩进。

有关其中任何一个的更多详细信息,请参阅:help ' optionname ' vim中:help ' optionname ' (例如:help 'tabstop'


#3楼

要为当前用户永久定义此项,请创建(或编辑) .vimrc文件:

$ vim ~/.vimrc

然后,将下面的配置粘贴到文件中。 重新启动vim后,将应用选项卡设置。

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 4set softtabstop=4   " Sets the number of columns for a TABset expandtab       " Expand TABs to spaces

#4楼

:set sw=4

请参阅


#5楼

或者是vim modeline的简写:

vim :set ts=4 sw=4 sts=4 et :

#6楼

将您想要的设置放在〜/ .vimrc文件中 - 请参阅下面的一些指南和最佳实践。

在Vim中使用选项卡有四种主要方法:

  1. 始终将'tabstop'保持在8,将'softtabstop'和'shiftwidth'设置为4(或3或任何你喜欢的)并使用'noexpandtab'。 然后Vim将使用选项卡和空格的混合,但键入并将表现为每4(或3)个字符出现一个选项卡。

    注意:将“tabstop”设置为除8之外的任何其他值可能会使您的文件在许多地方出现错误(例如,打印时)。

  2. 将'tabstop'和'shiftwidth'设置为您喜欢的任何内容并使用'expandtab'。 这样您将始终插入空格。 当'tabstop'改变时,格式永远不会搞砸。

  3. 将'tabstop'和'shiftwidth'设置为您喜欢的任何内容并使用| modeline | 再次编辑文件时设置这些值。 仅在使用Vim编辑文件时有效。

  4. 始终将'tabstop'和'shiftwidth'设置为相同的值,并设置'noexpandtab'。 这应该适用于人们使用的任何tabstop设置(仅适用于初始缩进)。 如果你这样做的话,在第一个非空格作为空格插入后有标签可能会很好。 否则,当'tabstop'被更改时,对齐的注释将是错误的。

资源:

  • :help tabstop

#7楼

添加行

set ts=4
每个用户的~/.vimrc文件
要么
/etc/vimrc文件用于系统范围


#8楼

还有一件事,请使用

:retab
将现有tab转换为spaces


#9楼

几个设置定义是否使用空格或制表符。

所以这里有方便的函数,可以在你的~/.vimrc文件中定义:

function! UseTabs()  set tabstop=4     " Size of a hard tabstop (ts).  set shiftwidth=4  " Size of an indentation (sw).  set noexpandtab   " Always uses tabs instead of space characters (noet).  set autoindent    " Copy indent from current line when starting a new line (ai).endfunctionfunction! UseSpaces()  set tabstop=2     " Size of a hard tabstop (ts).  set shiftwidth=2  " Size of an indentation (sw).  set expandtab     " Always uses spaces instead of tab characters (et).  set softtabstop=0 " Number of spaces a 
counts for. When 0, featuer is off (sts). set autoindent " Copy indent from current line when starting a new line. set smarttab " Inserts blanks on a
key (as per sw, ts and sts).endfunction

用法:

:call UseTabs():call UseSpaces()

要按文件扩展名使用它,可以使用以下语法(添加到.vimrc ):

au! BufWrite,FileWritePre *.module,*.install call UseSpaces()

另请参阅: 。


这是Wikia的另一个片段,可用于 :

" virtual tabstops using spacesset shiftwidth=4set softtabstop=4expandtab" allow toggling between local and default modefunction TabToggle()  if &expandtab    set shiftwidth=8    set softtabstop=0    set noexpandtab  else    set shiftwidth=4    set softtabstop=4    set expandtab  endifendfunctionnmap 
mz:execute TabToggle()
'z

它允许为每个选项卡使用4个空格,并映射到F9以切换设置。


#10楼

我的基本〜/ .vimrc有评论:

set number " show line number                                                                                           set tabstop=2 " set display width of tab; 1 tab = x space with                                                           set expandtab " transform tab to x space (x is tabstop)                                                               set autoindent " auto indent; new line with number of space at the beginning same as previous                                                                      set shiftwidth=2 " number of space append to lines when type >>

转载地址:http://zaogj.baihongyu.com/

你可能感兴趣的文章
项目整合微信扫码登录功能
查看>>
分布式文件系统FastDfs的搭建
查看>>
Springboot项目利用Java客户端调用FastDFS
查看>>
全文检索工具elasticsearch的安装和简单介绍
查看>>
利用Kibana学习全文检索工具elasticsearch
查看>>
SpringBoot在Test测试类或自定义类中通过@Autowired注入为null
查看>>
使用docker搭建YAPI服务
查看>>
西南科技大学OJ题 邻接表到邻接矩阵1056
查看>>
西南科技大学OJ题 有向图的出度计算1057
查看>>
西南科技大学OJ题 有向图的最大出度计算1059
查看>>
西南科技大学OJ题 带权有向图计算1063
查看>>
oracle主键自增触发器编写
查看>>
String与StringBuilder与StringBuffer三者的差别
查看>>
各种IO流之间的关系和区别
查看>>
SSM如何实现上传单图片
查看>>
SSM环境下java如何实现语音识别(百度语音识别版)
查看>>
ajax方法参数的用法和他的含义
查看>>
数据库基础技巧及用法
查看>>
实用方法:无request参数时获得当前的request的方法
查看>>
JS操作数组常用实用方法
查看>>