【问题标题】:How to get gedit to auto-indent code如何让 gedit 自动缩进代码
【发布时间】:2023-04-04 21:39:01
【问题描述】:

我正在尝试让 gedit 自动缩进我的代码。首选项中的自动缩进复选框不起作用。有没有办法让 gedit 自动缩进代码? (顺便说一句,我只关心 C++ 缩进。我不需要任何其他语言的缩进。)

【问题讨论】:

  • “自动缩进”是什么意思? gedit 的选项是这样做的:当您键入缩进的行(通过按制表符或一些空格)并按 Enter 时,新行将具有与前一行相同的缩进。它不是这样工作的吗?如果这行得通,你期望什么?
  • 我就像一个 IDE,它会自动在括号之间插入一个制表符。尽管我不知道这听起来不错。谢谢!
  • 啊,现在我明白了,它更像是 Eclipse 和其他 IDE... AFAIk gedit 不这样做,也没有任何插件提供这样的功能。但是,通过插件似乎是可行的,因此您可能最终会寻找这样的插件。
  • 嗯。哦,好吧。我现在仍然更喜欢 gedit 而不是 IDE。我发现的每个 IDE 都是基于 java 的,而且 java 和我的系统都不是好朋友——至少可以这么说。它在我的 Ubuntu 上运行缓慢且有问题。我已经开始使用 gedit 进行我所有的编码,从 ruby​​ 到 C++。也许我需要回到 IDE?

标签: gedit auto-indent


【解决方案1】:

gedit有自动缩进功能,去

编辑 -> 首选项 -> 编辑器 -> 第三行

【讨论】:

  • 谢谢。我已经知道了这一点,但它并没有达到我想要的效果。无论如何 +1。
  • Gedit 自动意图似乎只将光标放在上一行的缩进下。它什么也不做。
【解决方案2】:

gedit 的“智能文本完成”插件完全符合您的描述: https://github.com/nymanjens/gedit-intelligent-text-completion

如果您想了解如何将文件intelligent_text_completion.pluginintelligent_text_completion.py 复制到.local/share/gedit/plugins,请执行以下操作:

user@example:~/.local/share$ cd ~/.local/share/
user@example:~/.local/share$ mkdir gedit
user@example:~/.local/share$ cd gedit/
user@example:~/.local/share/gedit$ mkdir plugins
user@example:~$ cp intelligent_text_completion.plugin intelligent_text_completion.py ~/.local/share/gedit/plugins/

【讨论】:

  • 使用这个插件我在下次启动 gedit3 时出错: ERROR:/build/buildd/pygobject-3.4.0/gi/_gobject/pygobject.c:946:pygobject_new_full: assertion failed: (tp != NULL) 中止
  • 我以前听说过这类错误,但我似乎无法在我的系统上重现它们。如果您能找到解决方案,请告诉我。
【解决方案3】:

这是另一种解决方法,您可以使用 vim 从 Gedit 中自动缩进和自动格式化代码。

首先确保已安装 vim。 接下来,从“工具”菜单中将“外部工具”添加到 Gedit 并使用以下代码:

#!/bin/sh
CMD_FILE_NAME=.formatcommand;
TMP_FILE_NAME=.tempvimfile;
touch $CMD_FILE_NAME&&echo "gg=G :wq! "$TMP_FILE_NAME > $CMD_FILE_NAME&&(vim $GEDIT_CURRENT_DOCUMENT_NAME -s $CMD_FILE_NAME > /dev/null 2>/dev/null)&&rm $CMD_FILE_NAME;
cat $TMP_FILE_NAME
rm $TMP_FILE_NAME

还要确保:

  • “保存”设置为“当前文档”。
  • “输入”设置为“无”。
  • “输出”设置为“替换当前文档”。

你也可以设置一个热键,我更喜欢 Alt+Shift+F 像 Netbeans。 现在,无论何时按下热键,当前文件都会被保存并自动格式化。

只要文件的扩展名正确,这将适用于任何编程/脚本语言

如果您没有缩进,请将filetype indent on 放入您的~/.vimrc 文件中,它会起作用。

更多详情请查看我的personal blog

【讨论】:

  • 太棒了!谢谢!好时机,因为我刚开始使用 vim 自己进行编辑 :)
  • 太棒了 :) 我写的很匆忙,所以脚本可能看起来不是很优雅,但它确实有效!
  • 嘿@HusseinElMotayam 我刚刚尝试了你的解决方法,它给了我这些错误:运行工具:格式化Vim:警告:输出不是终端Vim:警告:输入不是来自终端猫:。 tempvimfile:没有这样的文件或目录rm:无法删除`.tempvimfile':没有这样的文件或目录退出:256
  • @HusseinElMotayam 你是我的英雄! ;) 我会稍微修改您的帖子以解决一些小问题。
  • 我很喜欢这个,但它会通过缩进不应该缩进的行来破坏 python 代码。
【解决方案4】:

Ubuntu 16.04 和 Gedit

  1. 激活外部工具插件

    编辑 → 首选项 → 插件 → 外部工具

  2. 管理外部工具

    工具 → 管理外部工具

  3. 添加工具

    • 点击管理左下角的+按钮 外部工具窗口
    • 您可以将新工具重命名为您喜欢的任何名称, 例如JSON Formatter
    • 参考下图并进行相应设置

【讨论】:

  • 拜托,很好,你能把py代码粘贴为文本
猜你喜欢
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
相关资源
最近更新 更多