Intellij仅在复制期间将制表符转换为空格

时间:2013-10-15 21:41:11

标签: tabs intellij-idea ide formatting indentation

如何在复制操作期间仅在Intellij?

中将制表符转换为空格

我在代码中使用了标签,在我平常的工作区中显示为4个空格宽。但是,有时我需要将我的代码粘贴到网页或论坛中。这可以找到网页是否有4个空格的标签,但有些论坛使用8个空格标签导致过度缩进。

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

1 个答案:

答案 0 :(得分:4)

一种方法是使用宏。

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

手动创建宏

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

    导入此宏

    如果您之前没有创建过宏,只需将以下内容转储到.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'

    或者为它分配键盘快捷键可能更简单(请注意,您可以直接在“设置”中搜索“复制间隔代码”,而不是先转到Keymap,然后在那里搜索它):

    enter image description here