vim - vim缩进不保留间距
问题描述
下面是我在 vim 中输入的示例文本,只有空格没有使用制表符。
dog;
dogcat
dogcatmoose
box
box car
woop
woopadoop
假设我突出显示所有代码,并使用缩进>
会发生以下情况:
dog;
dogcat
dogcatmoose
box
box car
woop
woopadoop
不保留原始间距。我不希望这样,我希望保留间距,所以它看起来像这样:
dog;
dogcat
dogcatmoose
box
box car
woop
woopadoop
我用制表符而不是空格进行了测试。使用制表符时,缩进会保留制表符。这是我的 vimrc。这里有一些价值导致这个问题吗?我可以添加一个值来解决问题吗?
set number
set nowrap
set linebreak
set tabstop=4
set softtabstop=4
set shiftwidth=4
set shiftround
set expandtab
set title
set mouse=a
set hlsearch
set smarttab
set autoindent
set smartindent
set background=dark
filetype indent on
set filetype=html
set smartindent
set nocompatible
filetype off
set nobackup noswapfile
set clipboard=unnamed
let &colorcolumn=join(range(81,999),",")
highlight ColorColumn ctermbg=235 guibg=#2c2d27
"Stop vm from indenting on comment out sections starting with "#"
set indentkeys-=0#
解决方案
我的建议是摆脱set shiftround
.
似乎set shiftround
加上set shiftwidth=4
导致了这种行为。shiftround
尝试将文本缩进为 4 的倍数(由 设置shiftwidth
),而您的文本缩进 2 个空格。因此,当您这样做时>
,shiftround
会使所有行都具有相同的 4 空格缩进。您可以使用相同的文本但使用 4 个空格缩进来进行实验;您的设置将保留缩进。
推荐阅读
- spring-boot - Spring Boot Reactive:经过时间计算
- neo4j - 嵌入式 Neo4j APOC 程序 apoc.load.json 不工作
- redis - RediSearch Suggestions - 删除所有建议
- amazon-web-services - 返回 Amazon DynamoDB 属性的子集
- python - 如何保留数据框连接中的所有关键列
- jupyter-notebook - 有没有办法保存已执行的包含所有功能和数据的 Jupyter 笔记本?
- javascript - TypeScript 中的具体 Pick 实现
- javascript - 仅在 Safari 中:ReferenceError 找不到变量
- c# - 线程安全工厂
- selenium - 打印下拉元素值的所有隐藏定位器,并一一选择 react bootstrap