我已经研究了几个关于堆栈溢出的问题,了解了如何在没有找到所需内容的情况下将空格转换为制表符.关于如何将制表符转换为空格,似乎还有更多的问题,但我正试图做相反的事情.

Vim中,我try 了:retab:retab!,但运气不佳,但我相信它们实际上是用于从制表符到空格的.

我在命令提示符下try 了expandunexpand,但没有成功.

以下是相关文件:

http://gdata-python-client.googlecode.com/hg-history/a9ed9edefd61a0ba0e18c43e448472051821003a/samples/docs/docs_v3_example.py

如何使用Vim或shell将leading个空格转换为制表符?

推荐答案

使用Vim扩展所有leading个空间(大于'tabstop'),使用retab是正确的,但首先要确保'expandtab'被重置(:verbose set ts? et?是您的朋友).retabrange,所以我通常指定%表示"整个文件".

:set tabstop=2      " To match the sample file
:set noexpandtab    " Use tabs, not spaces
:%retab!            " Retabulate the whole file

在执行类似操作(尤其是Python文件!)之前,我通常设置为'list',这样我就可以see空格并进行更改.

我在my .vimrc中有以下映射:

nnoremap    <F2> :<C-U>setlocal lcs=tab:>-,trail:-,eol:$ list! list? <CR>

Linux相关问答推荐

IntelliJ(PyCharm)不再识别Linux中的AltGr快捷键

AWK打印到文件正在追加,而不是覆盖

如何知道进程组中的所有进程是否都已收集?

std::chrono::time_zone 在不同操作系统上不可用

不带空格的字符串连接形成文件路径

我需要从 Ubuntu 中删除 .txt 文件中以白色间距分隔的行的白色间距

为什么 linux shell diff 命令有时会显示与空行相关的输出,即使存在 -B(--ignore-blank-lines)选项?

在 Ubuntu 中,如何设置 Tomcat 9 以使用 Java 17?

命令应在终端关闭后继续运行

在 bash 中解析变量

如何在Linux中将文件的特定行号中的数字乘以2(双)?

如何将通配符参数传递给 bash 文件

使用正则表达式时,Shell 'tar: not found in archive' 错误

Vagrant chicken-and-egg:与 uid = apache 用户共享文件夹

KDE 桌面效果中的 OpenGL 和 XRender 有什么区别?

crontab 命令单独一行

在 C 中设置环境变量

如何在 UNIX 中将字符串转换为整数

id_rsa.pub 文件 SSH 错误:格式无效

Bash:等待超时