1

如何仅在 Intellij 中的复制操作期间将制表符转换为空格?

我在代码中使用制表符,在我常用的工作区中显示为 4 个空格宽。但是,有时我需要将我的代码粘贴到网页或论坛中。如果网页有 4 个空格的制表符,这会起作用,但有些论坛使用 8 个空格的制表符会导致缩进过多。

我想复制 Intellij 编辑器中的代码,并让它根据我的显示偏好将选项卡转换为文本的剪贴板副本中的空格,而不是编辑器本身中的代码。这样我就可以将空格缩进的代码粘贴到网络论坛中。有没有办法做到这一点?

4

1 回答 1

4

一种方法是使用宏。

下面的宏根据您在 IntelliJ 中的显示设置将所选代码中的“缩进到空格”转换,将其复制到剪贴板,然后撤消转换以恢复 IntelliJ 中的更改。

手动创建宏

  1. 选择一段代码,然后
  2. Edit -> Macros -> Start Macro Recording
  3. Edit -> Convert Indents -> To Spaces
  4. Ctrl + C
  5. Ctrl + Z
  6. 编辑 -> 宏 -> 停止宏录制
  7. 输入宏的名称,例如:复制间隔代码

或者

导入此宏

如果您之前没有创建宏,只需将以下内容转储到 .IntelliJIdea12\config\options\macros.xml

<?xml version="1.0" encoding="UTF-8"?>
<application>
  <component name="ActionMacroManager">
    <macro name="Copy spaced code">
      <shortuct text="alt E" />
      <action id="ConvertIndentsToSpaces" />
      <action id="EditorCopy" />
      <action id="$Undo" />
    </macro>
  </component>
</application>

使用宏

选择要粘贴到论坛帖子的代码,然后:

任何一个Edit -> Macros -> 'Copy spaced code' OR 'Playback Last Macro'

或者像这样为其分配键盘快捷键可能更简单(请注意,您可以立即在“设置”中搜索“复制间隔代码”,而不是先去键盘映射然后在那里搜索):

在此处输入图像描述

于 2013-10-16T13:17:02.543 回答