是否可以在 nano 中的制表符和空格之间轻松切换?

jam*_*lin 12 nano

通常我想nano用空格替换制表符,所以我set tabstospaces在我的.nanorc文件中使用。有时,我想对nano需要真正制表符的 makefile 进行快速编辑。

有没有办法动态切换tabstospaces?大多数其他选项都有切换它们的键,但我找不到相关的东西。我也试过使用^I(默认情况下绑定到tab函数)来插入一个选项卡,但这尊重tabstospaces设置。

我目前的解决方法是set tabstospaces取出我的.nanorc文件并添加 shell 别名:

 alias nanotabs="$(which nano)"
 alias nano="$(which nano) --tabstospaces"
Run Code Online (Sandbox Code Playgroud)

don*_*sti 14

切换tabstospaces的快捷方式是 Shift+ Alt+ Q(或Meta+ Q)。
您将看到提示更改为:

[ Conversion of typed tabs to spaces disabled ]
Run Code Online (Sandbox Code Playgroud)

或者

[ Conversion of typed tabs to spaces enabled ]
Run Code Online (Sandbox Code Playgroud)

分别。
另一种方式(仅适用于nano1.3.1或更新版本):
如果您输入您可以将文字标签逐字输入模式Shift+ Alt+ V(或Meta+ V)。
如果您然后键入Tab,nano将插入一个文字制表符,无论您的.nanorc设置如何。然后它将恢复到常规输入模式(因此,如果您需要键入第二个文字选项卡等,则必须再次进入逐字输入模式)。
您还可以将自己的逐字输入模式快捷方式添加到.nanorc,例如Ctrl+ T

#Edit
bind ^T verbatim main
Run Code Online (Sandbox Code Playgroud)

  • 在nano中,从版本3左右开始,快捷方式现在是meta+O https://www.nano-editor.org/dist/v3/nano.html#Feature-Toggles 我没有在变更日志中找到提及的更改https: //www.nano-editor.org/dist/v3/ChangeLog (2认同)