atom 配置 把编译运行终端(自带)改为 platformio-ide-terminal

最近换掉了xcode...因为实在是..太卡了...555...以前好喜欢的超级漂亮的xcode啊...
于是换了 atom,改了一下配置。一些网上能找到的教程就不写了...懒...主要挑一些找不到的分享一下~
我下了中文的插件...所以部分有中文,没有中文的可以对照着找一下...下载的插件是 simplified-chinese-menu


我是可爱的分割线

配置内置运行界面

用的是 mac,对于 windows 用户来说这个没必要,可以直接看后面的。
mac 嘛...每个进程全屏了,切换进程就会切换整个界面,每次一运行,就会打开 mac 自带的终端,换来换去很晃眼的啊...所以调一下...

1.下载插件

插件名:

platformio-ide-terminal

扩展 > Settings View > Install Packages/Themes

图1

安装 > 输入 platformio-ide-terminal

图2

但是!!!炒鸡重要的一点是,这个需要每次运行前保存文件!!因为终端是不会帮你保存的!!不保存的话!!编译的就不是你写完的文件了!!!

2.设置插件

扩展 > Settings View > Manage Packages

图3

扩展 > 找到 platformio-ide-terminal > 设置

图4

找到 Core > 若未展开,点击下图箭头所指处

图5

得到以下界面:
图6

若是 windows,则在 Default 那里 输入 g++ -o a.exe *.cpp ; ./a.exe
若是 mac,则输入 g++ -o a.out *.cpp && ./a.out

如图:
图7

解释以下...:

g++ -o 是 制定可执行文件文件生成的名字(这里其实可以省略为 g++ *.cpp,因为 默认生成的文件就是 a.exea.out),\*.cpp通配符,指所有以 .cpp 结尾的文件,g++ 就是 编译器啦。
./a.out./a.exe 分为别 mac 和 windows 下的 执行可执行文件。
然后要说一下,mac 的 组合命令符号 是 && ,意思是 执行完第一条命令,就执行第二条。但是 windows 的不一定,若是在 cmd下 ,那么 组合命令一般是 && (也有 & / |), 但是 atom 好像默认使用 powershell,他的组合命令符号为 ;(似乎也有用 -and 的,但我试了一下,似乎没有运行)。

结果如图:
windows

mac

另外,Map Terminals To 可以选择 File 或者 Folder图8
如图
图9

这样才可以直接编译当前目录下文件。

所以打开文件时,我们要让页面变成这样:
图10

因为我们选择的是编译当前目录下所有文件,所以目录下只能有一个 .cpp 文件~~不然你可能最后得到的 a.out 不是你想要的可执行文件~

3.设置运行的快捷键

Atom > 用户键盘映射

图11

加两行

'atom-text-editor':
'cmd-r': 'platformio-ide-terminal:new'

图12

意思也很好理解,就是指 将 我的 mac 的 command键 + r(以前用xcode就是这个运行键,比较习惯),映射为 platformio-ide-terminal 这个插件的 new 动作(新创建一个文件)

当然,你也可以写更多上去,如图:
图13

具体的后面写什么,可以看 platformio-ide-terminal 插件的 Settings 的最后面。
图14

左边的是内容,后面的是原本的快捷键,这个应该很容易理解,不说了。

自定义代码块

这个其实网上能找到一些,但是写的不详细。我当时找的时候一脸懵逼。

Atom > 用户代码片段

图1

接着就会打开一个文件:
图2

网上关于 c/c++ 的代码块配置很少,放一下我的(部分)~

'.source.cpp':
  'for':
    'prefix': 'for'
    'body': '''
            for (int ${1:i} = 0; ${1:i} < ${2:n}; ++${1:i}) {
              $3
            }
            '''
  'printf':
    'prefix': 'printf'
    'body': '''
            printf("%${1:d}\\\\n", $2);
            '''
  'if':
    'prefix': 'if'
    'body': '''
            if ($1) {

            }
            '''
  'scanf':
    'prefix': 'scanf'
    'body': '''
            scanf("%d", &$1);
            '''
  '~scanf':
    'prefix': '~scanf'
    'body': '''
            ~scanf("%d", &n) && n$1
            '''
  'while':
    'prefix': 'while'
    'body': '''
            while ($1) {

            }
            '''
  'memset':
    'prefix': 'memset'
    'body': '''
            memset(${1:arr}, ${2:0}, sizeof ${1:arr});$3
            '''
  'sort':
    'prefix': 'sort'
    'body': '''
            sort(${1:arr}, ${1:arr} + ${2:n});$3
            '''
  'return':
    'prefix': 'return'
    'body': '''
            return 0;
            '''
  'using':
    'prefix': 'using'
    'body': '''
            using namespace std;
            '''
  'include':
    'prefix': "include"
    'body': '''
            include <${1:cstdio}>
            '''
  'vector':
    'prefix': "vector"
    'body': '''
            vector<${1:int}> ${2:v};$3
            '''

简单说明一下:

'.source.coffee': 这个是需要找一下的。

在已安装扩展里面搜索 language,找到你需要的语言,点开设置,例如我要修改 C/C++
图3

找到这样的模块:
图4
图5

然后在前面加一个点,例如我写的是c++,格式就是 .source.cpp

'Console log': 是随意的,可以自己设置

'prefix': 需要写上你的代码提示码

'body': 'console.log $1'这个就是代码主体了

我已开始写完,觉得写得没有原本的好,因为这里其实需要用到一些技巧。
例如,拿 for 循环来说,

  'for':
    'prefix': 'for'
    'body': '''
            for (int ${1:i} = 0; ${1:i} < ${2:n}; ++${1:i}) {
              $3
            }
            '''

$1 代表第一次光标所在位置,$2 代表按了tab键后第二次光标所在位置,$3 代表第三次,以此类推...

${num:k} 这个的意思是,第 num 次光标处,写得是 k,但选中了,可以直接进行修改。

上面一段代码的效果如下:
效果

可以看到,由于有3个 ${1:i} ,所以光标第一次所在位置就是这三个地方,可以同时选中,同时修改。

这时候按一下 tab 键,如下:
按 tab
选中了 ${2:n} 处,

再按一下 tab :
$3
到了 $3 处,但并未选中。

关于 mac 上的 linter-gcc 问题

点进 linter-gcc 的设置里面,可以看到这么一段话:

图1

如果 mac 上曾使用 xcode(例如我...),使用时 gcc 会有一些问题。
我的问题就是...他不报错...可以看到有错误,但是不提示你错误在哪的那种...

点进这段话里的链接:
图2

这里有一些说明。
大致意思就是,xcode 的 有自带的 gcc,但是呢他有一些问题...
(我当时就是因为有了 xcode 的 gcc,所以没有自己下载gcc)
然后他给了解决方案~

所以呢,需要自己再下载一个 gcc。

1.下载 新版本的 gcc

在终端里下载...这里不说了...因为我没下,我电脑里直接就有..也不知道啥时候下的...百度下有很多关系下载 gcc 的教程~

2.修改atom链接的gcc目录

下载完成后,终端会提示你安装的 gcc 目录在哪
如我的是:

/usr/local/Cellar/gcc/8.2.0

在后面加上 /bin/gcc-x
x 是你下载的 gcc 的版本号

例如得到我的就是:

/usr/local/Cellar/gcc/8.2.0/bin/gcc-8

然后将这句话写在 linter-gcc 的Settings 里面的目录里

图3

然后就会发现,有正常的代码错误提示啦~
图4

恢复上次关闭前的文件夹

如果你每次重启 atom 后,都需要手动打开项目文件,并且尝试了很多办法都米有用,那么不妨试一下以下两个方法:

1. cmd + q

atom 如果没有完全关闭(mac 用户经常会这样),也就是下面有个小点点的情况:
图1

这样就相当于你没有关闭,那么再打开 atom,他会默认你要打开第二个文件/文件夹,所以出来的界面是不会恢复你本来打开着的文件的。
每次要关闭的话,用 cmd + q,这样可以完全关闭,就不会有这样的问题~

2.下载插件

其实网上有很多推荐的插件,例如 open-last-projectproject-manager(需要保存项目才可以)等等。
但是我都下了试过,不行...不知道是不是因为 mac 没有完全关闭 atom 的原因...但是有一个插件可以:restore-windows,可以尝试一下~

暂时就是这些啦,想到别的我再补充~

哈哈哈哈哈哈