gpt4 book ai didi

go - Vim 正常模式将制表符显示为 1 个字符宽,不与左边距对齐

转载 作者:数据小太阳 更新时间:2023-10-29 03:04:00 24 4
gpt4 key购买 nike

enter image description here这是我的光标在正常模式下最左边的位置。

enter image description here这是它在插入模式下的样子。

我有以下文件类型设置

au BufNewFile,BufRead *.py
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set textwidth=79 |
\ set expandtab |
\ set autoindent |
\ set fileformat=unix |

au BufNewFile,BufRead *.js, *.html, *.css
\ set tabstop=2 |
\ set softtabstop=2 |
\ set shiftwidth=2 |

au BufNewFile,BufRead *.go
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set noexpandtab |
\ set smarttab

This typically happens with .go files as I guess I have noexpandtab. But the cursor not going to column-0 in normal mode freaks me out.

最佳答案

你看到的是正常的 Vim 行为。在以 <Tab> 开头的行上字符,光标显示在字符上;因为制表符占用多个(默认 8 个)屏幕单元格,Vim 将光标放在字符的末尾(对于双倍宽度的字符,Vim 也会将字符加倍,但 8 个字符宽的光标可能看起来很糟糕,并且可能不会技术上在终端中是可能的)正常模式。在 插入模式 中,光标位于字符之间,因此您可以将光标定位在选项卡之前(例如使用 gI )和之后( I )。

补救措施

最好接受这种行为;如果您真的受不了,这里有一些可以改变行为的选项。不幸的是,每个都有警告和缺点:

  • :set list , Vim 将光标放在前面,如你所愿。但是您也会看到突出显示的空白。你可以摆弄 'listchars'减少视觉噪音的选项,但你会失去这个有用的功能。
  • :set virtualedit=all ,您可以将光标定位在选项卡内的任意位置。从中间开始编辑会将制表符分成前后空格。此外,您可以将光标放在物理文本后面的任何位置。
  • :autocmd s,您可以在读取缓冲区时将制表符转换为空格,然后在写入时返回。 (参见 :help retab-example)

关于go - Vim 正常模式将制表符显示为 1 个字符宽,不与左边距对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46634910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com