**

前言:

**
代码编辑器无数,我独钟爱geany,无他,天下武功,唯快不破。可是如何一键格式化一团乱码的代码呢?

网上只有windows下的方法,这里当然介绍Linux下的啦!顺便鄙视下美国政府利用windows垄断监控全世界。

一、专业格式化工具 indent

1、安装
sudo apt-get install indent
2、用法
-bad:在声明区加上空白行;
-bap:添加空白行; -bbb:在注释后面添加空白行; -bc:在声明段中,如果出现逗号就换行; -bl:if(或是else、for等)与后面执行区段的“{”不同行,且“}”自成一行-bli<缩排格数>设置{}缩排的格数; -br:if(或是else、for等)与后面执行区段的“{”同行,且“}”自成一行; -bs:在sizeof之后空一格; -c<栏数>:将注释置于程序右侧指定的栏位; -cd<栏数>:将注释置于声明右侧指定的栏位; -cdb:注释符号自成一行; -ce:将else置于“}”(if执行区段的结尾)之后; -ci:<缩排格数>:叙述过长而换行时,指定换行后缩排的格数; -cli<缩排格数>:使用case时,switch缩排的格数; -cp<栏数>:将注释置于else与elseif叙述右侧指定的栏位; -cs:在case之后空一格; -d<缩排格数>:针对不是放在程序码右侧的注释,设置其缩排格数; -di<栏数>:将声明区段的变量置于指定的栏位; -fc1:针对放在每行最前端的注释,设置其格式; -fca:设置所有注释的格式; -gnu:使用指定的GNU格式,该参数为默认值; -i<格数>:设置缩排的格数; -ip<格数>:设置参数的缩排格数; -kr:指定使用Kernighan&Ritchie的格式; -lp:叙述过长而换行,且叙述中包含了括号时,将括号中的每行起始栏位内容垂直对其排列; -nbad:在声明区段后不要加上空白行; -nbap:在程序后面不添加空白行; -nbbb:在注释段后面不添加空白行; -nbc:在声明段中,即使出现逗号,也不换行; -ncdb:注释符号不自成一行; -nce:不将else置于“}”后面; -ncs:不在case后面空一格; -nfc1:不要格式化放在每行最前端的注释; -nfca:不用格式化任何的注释; -nip:参数不要缩排; -nlp:叙述过长而换行,且叙述中包含了括号时,不用将括号中的每行起始栏位垂直对其排列; -npcs:在调用函数名之后,不要添加空格; -npro:不要读取indent的配置文件“.indent.pro”; -npsl:程序类型与程序名称放在同一行; -nsc:注释左侧不要添加星号; -nsob:不用处理多余的空白行; -nss:若for或while区段仅有一行时,在分号前不加空格; -nv:不显示详细的信息; -orig:使用berkeley格式; -pcs:在调用函数名与“{”之间添加空格; -psl:程序类型置于程序名称的前一行; -sc:在每行注释左侧添加星号; -sob:删除多余的空白行; -ss:若for或swile区段仅有一行时,在分号前加上空格; -st:将结果显示在标准输出设备上; -T:数据类型名称缩排; -ts<格数>:设置tab的长度; -v:显示详细的执行过程; --version:显示版本信息。

例如:要格式化 hello1.c
indent -kr -i4 -ts8 -sob -l80 -ss -bs -bbb -bl -bli8 -nce -psl hello1.c

二、geany 站在 indent 的肩膀上

1、设置“build”命令

如上图,菜单 “build”-“set"点出对话框中“文件类型无关命令”中输入:
第一列 “label” 中输入命令的名称,我输入 : formats
第二列 “command” 中输入 indent 命令
indent -kr -i4 -ts8 -sob -l80 -ss -bs -bbb -bl -bli8 -nce -psl “%f”
确定并关闭对话框。
如果要一键处理,还要在"edit”-“option”-"shortcut"中设置下快捷键。
2、使用
菜单 "build"下会多出一个叫“formats”的命令,点击一下,再“File”-"Reload"一下,代码太美了!

3、扩展其他格式化工具

如果想格式化Html等代码,可以用 tidy : sudo apt-get install tidy
还可以使用 astyle: sudo apt-get install astyle

同上述indent一样加入命令。

三、geany 编辑部分代码格式化

1、设置自定义编辑命令
菜单 “编辑”-> “格式”->“发送选中文字到”->“设置自定义命令”
   比如用astyle 格式化选中代码:

bash -c “astyle --indent-classes -Y”

参考: http://astyle.sourceforge.net/astyle.html
https://blog.csdn.net/wisepragma/article/details/80993437

    比如用 tidy 格式化选中代码:

bash -c "tidy -xml --indent auto --indent-spaces 2 --quiet yes --wrap-attributes yes "

参考: http://tidy.sourceforge.net/docs/quickref.html

上图对话框右边“标签”加上标示则更好!

2、使用自定义编辑命令

在geany中选中一段或全部代码,用快捷键:

如果该命令排在第一,则使用时可以用快捷键: ctrl + 1,同理排第n就 :ctrl + n
 
也可以混合使用多种命令:
 html文件中全选用 tidy 格式化后,html元素排好了,但其中的 js脚本却乱了(网上格式化也是如此);此时再次部分选中js部分,用 astyle 盘它一下!


哈哈,规矩了! 可以选中js后Tab整体调整缩进深度。
    
      是不是舒坦多了呢!

Linux下轻型编辑器geany如何格式化代码相关推荐

  1. linux下Vi编辑器命令大全

    linux下Vi编辑器命令大全 /根目录下的文件夹 输入"/",回车 里面有很多文件夹,如:etc,home,lib,mnt等等 etc:存放用户名和密码 home:每个用户有个文 ...

  2. 手把手教你如下在Linux下如何写一个C语言代码,编译并运行

    文章目录 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 打开Ubuntu终端 创建 helloworld.c 编译C文件 手把手教你如下在Linux下如何写一个C语言代码,编译并运行 ...

  3. linux进度条脚本,Linux下简易进度条的实现代码

    在生活中,进度条是很常见的,那么,进度条是如何实现的呢? 首先,进度条的动态是利用人眼视觉暂留效果的.实际上是如下过程: 先输出:[=     ]表示进度是1%,刷新之后 再输出:[==    ].. ...

  4. linux 文档编辑器 word,linux下vi编辑器命令大全

    常用命令linux下vi编辑器命令大全来源:考试大 [学而优则进,考试大以成!] 2007年8月14日 文本编辑器是所有计算机系统中最常用的一种工具.UNIX下的编辑器有ex,sed和vi等,其中,使 ...

  5. linux下vi编辑器的命令大全,linux下VI编辑器命令大全(超级完整版)

    linux下VI编辑器命令大全(超级完整版) NOTICE:把这里提到的命令牢记心间,行走LINUX才能轻松自如! 这是基本功,练就此身本领后,方可学习上乘功夫 如若不按此步骤修练,结果会经脉尽断,真 ...

  6. atom编辑器Linux中文版,linux atom 怎么支持中文 Linux下Atom编辑器不支持中文解决方法...

    Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器.具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言.它支持宏,自动完成分屏功 ...

  7. linux下vi编辑器方向键变成字母的解决方法

    一.现象: 最近部署系统安装linux系统后,使用vi编辑器编辑文件时,使用方向键盘时光标没有移动,而是在页面打印ABCD等字样,并且删除键盘也不起效. 二.原因: 这个问题的最终原因是linux系统 ...

  8. linux下vim编辑器插件,为你介绍Linux系统中vim编辑器的实用插件!

    今天小编要跟大家分享的文章是关于Linux系统中vim编辑器的实用插件.Vim 是 Linux 下的常用文本编辑器,但也经常被称为是一个上古神器,因为它对于初学者而言相当不友好,也不好入门. Linu ...

  9. linux下Vi编辑器命令大全(上)

    2007-04-23 18:09/根目录下的文件夹 输入"/",回车 里面有很多文件夹,如:etc,home,lib,mnt等等 etc:存放用户名和密码 home:每个用户有个文 ...

最新文章

  1. 1874 素数和最大 - Wikioi
  2. 关于windows xp sp2/sp3 中tcpip.sys对于Raw socket的限制
  3. 将页面中表格数据导出excel格式的文件(vue)
  4. 通达信版弘历软件指标_中线公式指标(副图 通达信 贴图)明确文字提示,辅助判断中线走势下载_通达信公式...
  5. Java中length,length(),size()的区别
  6. vue实现查询多条记录_vue.js 实现天气查询
  7. Scikit-learn:分类classification
  8. 龙芯提供的jna-4.5.2,没有libjnidispatch.so,也能用
  9. 通过CN3口直接控制台达伺服电机A2-M(二)
  10. 操作系统实验:系统内存使用统计
  11. matlab定步长ode,[转载]matlab ode45 函数传自定义参数用法及定步长ode
  12. ktt算法 约化_svm算法 最通俗易懂讲解
  13. 仪器数据自动化采集,助力提升实验室管理效率
  14. SYN8086语音合成芯片(TTS语音芯片)各项指标测试已完成,正式批量化生产
  15. FileManager 文件管理器
  16. 李永乐老师卷积神经网络
  17. HTMLCSS学习笔记 纯知识点版 (尚硅谷2019李立超版)
  18. 什么是进制中的低位、高位
  19. Java入门-向下转型的安全判断
  20. 催眠soap_催眠徽标动画

热门文章

  1. EasyRTMPLive:RTMP流媒体直播软件应用解决方案流媒体直播软件应用
  2. 2014黑帽大会揭露十大恐怖安全漏洞!
  3. 千万级数据查询中CK、ES、RediSearch方案的优化
  4. 平板手写笔有必要买吗?开学季便宜又好用电容笔推荐
  5. 全新Funtool趣工具iApp软件库源码+工具箱源码
  6. 极客日报:《英雄联盟》回应服务器崩了:官方直接回退了旧版本;Deno 1.19 发布|极客头条
  7. python 使用图形化界面tkinter显示图片 规定大小!
  8. HDU2072(单词数)
  9. [PHP面试题]跳槽面试必背-自己最近5年的整理(三)
  10. 短信验证码被盗刷了怎么办?