vim 中的 python 标识部分包含哪些字符?
我的 vimrc 里有这个。
set listchars=trail:.,tab:>-,eol:$
set nolist
noremap <leader>i :set list!<CR> " Toggle invisible chars
当我用 Python 编程并运行
时,我的标识不显示任何字符,因为它没有尾随空格,也没有制表符。
现在,我想知道:如果我的标识中不是空格或制表符,那么它们到底是什么字符?
我问这个问题是因为我打算忽略 vimdiff 中的空格,但是在编辑与空格相关的 python 文件时这样做不会成为问题吗?
I have this in my vimrc.
set listchars=trail:.,tab:>-,eol:$
set nolist
noremap <leader>i :set list!<CR> " Toggle invisible chars
When I'm programming in Python and I run <leader>i
, my identation doesn't show any characters, since it isn't trailing whitespace, neither tabs.
Now, I'm wondering: what character exactly are in my identation if they arent whitespace, or tabs?
I'm asking this because I'm planning to ignore whitespace in vimdiff, but isn't doing this going to be a problem when editing python files, where whitespace is relevant?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
缩进是空格。尾随空白是后面除了换行符之外什么都没有的空白。缩进显然后面有代码,因此没有列表字符。
关于您的编辑,您有几个选择。
autocmd FileType python
设置diffopt
来使 vimdiff 忽略 python 文件的空格。set noexpandtab
),并在比较文件时使用set list
来比较缩进。这是不太理想的,因为 vim 不会为你突出显示和指出缩进的差异。可能还有更多选择,但目前我能想到的就是这两个。
The indentation is spaces. Trailing whitespace is whitespace with nothing but a newline after it. Indentation obviously has code after it, thus no list char.
In regards to your edit, you have a few options.
diffopt
with anautocmd FileType python
.set noexpandtab
for python files), and useset list
when diffing files to compare indentation. This is far less desirable because vim won't highlight and point out the differences in indentation for you.There may be more options, but those are the two I can think of at the moment.
使用十六进制编辑器查看典型的源文件,或使用 Python:
将明确打印文件的前 1Kb。
Look at a typical source file with a hex editor, or use Python:
will print the first 1Kb of your file unambiguously.