如何配置vim以便我可以一次删除一个空格而不是整个标签?当我尝试为if语句调整多个测试时,我经常想这样做。在下面的示例中,condition3按我的意愿对齐,而condition2由于标签而关闭了一个空格。
if condition1 or \
condition2 or \
condition3:
do something
我在OSX 10.6.7上使用vim 7.2.108并在我的代码文件中使用以下模式行:
# ex: tabstop=4 softtabstop=1 shiftwidth=4 expandtab:
FWIW,此模式行允许我使用箭头键一次在一个空格中导航。
更新:这是我对Bram Mooleanar的示例vimrc文件所做的更改:
map z :w<cr>
map q :q!<cr>
map m :make<cr>
set expandtab
set shiftwidth=4
set tabstop=4
set bs=2 " backspace over anything in insert mode
set showmatch " display the matching bracket of the pair
set nowrap " don't wrap line to fit window
set showmatch " show matching paren, bracket, or brace
set ruler " show current cursor position at bottom
set incsearch " show next match as you type in search pattern
set ignorecase
set smartcase
syntax on " enable syntax highlighting
答案 0 :(得分:4)
我想把它放在.vimrc文件中:
set expandtab
当你点击Tab键时,它基本上会将标签变成空格。
答案 1 :(得分:1)
我只需在正常模式下点击x
即可删除单个字符。我还要指出Eric McSween的精彩缩进/ python.vim script。它并没有真正改变退格行为,但它允许你做更多符合PEP8的事情 - 使用Python的隐含线延续使用括号。使用脚本,上面的代码看起来像
if (condition1 or
condition2 or
condition3):
do something
答案 2 :(得分:0)
看起来问题是您使用标签和空格的混合来管理对齐。
在大多数人处理相同文件的环境中,建议仅使用 空格或仅使用标签。
也就是说,您可以映射一个键来删除制表符,并在您的vimrc中添加以下内容,在其位置插入3个空格。
map <F1> s <ESC>
如果您想在插入模式下执行此操作:
imap <F1> <BS>
*请注意“&gt;”
后面有三个空格