利用Termux打造极简C++IDE
利用Termux打造极简C++IDE前言你是否知道termux这款神器,如果你不知道的话我希望你可以好好的去了解一下它,简而言之这是一个十分神奇的软件,这款软件在Android中模拟出了一个linux的环境,支持绝大多数的linux命令,并且termux拥有许多包和库,而且termux的社区还挺活跃的,他们维护了一个软件源是专门用于支持termux的。你是否了解过vim?vim编写效率是真的...
利用Termux打造极简C++IDE
前言
你是否知道termux这款神器,如果你不知道的话我希望你可以好好的去了解一下它,简而言之这是一个十分神奇的软件,这款软件在Android中模拟出了一个linux的环境,支持绝大多数的linux命令,并且termux拥有许多包和库,而且termux的社区还挺活跃的,他们维护了一个软件源是专门用于支持termux的。
你是否了解过vim?vim编写效率是真的很高,当然它具有一定的上手门槛,这就和linux是一样的,他们的操作都是建立在对一堆命令熟悉的前提之下的,换个角度,他们的设计理念似乎是一脉相承的。如果你没法耐下性子去学习它,很抱歉,这些神器似乎不适合你了。
你想过使用终端编写出c++吗?也许你在默默的说终端编程那得多没效率啊!!我选择ide!你想过通过手机编程吗?如果你曾经试过,那么你大概率使用的是c4droid这个软件吧,我想说这货连dev c++都不如!
放下那些没用的工具,选择termux+clang+vim+youcompleteme+lldb
打造极致c++ide!!!
正文
首先我们需要安装的软件有termux,这个软件推荐在Google商店下载,如果你无法访问这个网站还可以去酷安上下载,不过貌似版本不是很新。至于termux的一些入门教程我这里也不赘述了,这里推荐一个大佬的入门教程 termux入门教程
我相信你已经看完这篇教程了,是不是觉得干货满满!返现termux能做的事真的很多,这东西完全可以把你的智能手机整成一个服务器啊!
好的,回归主题,现在你已经装好了vim了。而且现在你的vim还很简陋,十分的不智能。如果你现在想试着用vim写c++,我觉得其实和用记事本写c是没啥两样的,也许还是vim强大许多,因为它的一些命令真的很顺手。如果你连这些还是完全不知道的话,我推荐你先百度一下相关的教程。想让vim变智能你需要对vim进行一些配置(其实vim本身支持很多很多的功能),配置的方法是在你的用户目录,也就是~这个目录下新建一个.vimrc这个文件,把一些配置相关的东西写在这里面就可以了。我的.vimrc文件是这样子的:
set nocompatible"关闭兼容模式,最最基础的设置,设置后才能使用vim许多特有的 特性
set number "设置显示行号
set cindent”设置自动缩进,根据的是c
set tabstop=4"设置tab宽度是4
set history=1000
set shiftwidth=4"用于程序中自动缩进所使用的空白长度指示的
set hlsearch"高亮搜索的关键字
set incsearch"以同时高亮所有匹配的字符
set ignorecase"搜索忽略大小写
set showmatch"括号匹配
set cursorline"高亮光标所在的行
set encoding=utf-8
behave mswin
"PATHOGEN插件管理工具的配置(全都是官方要求)
execute pathogen#infect()
syntax on
filetype plugin on
filetype indent on"自动根据文件类型来加载对应的缩进插件、
"另一款插件管理工具(官方标准配置)
"vundle
set nocompatible " be iMproved, required
"filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'fatih/vim-go'
"所有的插件都要在这上面添加
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
"关于ycm的配置
" Required for YouCompleteMe
set encoding=utf-8
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py'
"关键字补全
let g:ycm_seed_identifiers_with_syntax = 1
" 在接受补全后不分裂出一个窗口显示接受的项
set completeopt-=preview
" 让补全行为与一般的IDE一致
set completeopt=longest,menu
" 输入第一个字符就开始补全
let g:ycm_min_num_of_chars_for_completion=1
" 每次重新生成匹配项,禁止缓存匹配项
let g:ycm_cache_omnifunc=0
这是我的配置文件不是最好的,但一定是最适合我的,你们可以根据自己的需要进行配置,也可以参考网上别人更齐全的配置文件。
要写c++自然少不了编译器,在这里我推荐clang这个编译器,因为这个编译器的错误提醒实在比gcc来的优秀。你只需要通过 pkg install clang
就可以搞定!当然你也可以安装gcc。
clang的基础语法可以去看相关教程,不过我推荐每次带上-g,这样就可以生产debug相关的文件了。
现在重头戏来了!!我们来安装vim的插件,因为我只打算用来编写c++文件,没有工程的需要,因此简单是必不可少滴。我只安装两个插件,一个是auto -pairs,这个是用于自动匹配括号的,恩,很好用。这是它的项目地址 auto-pairs 项目说明里也有详细的安装介绍。另一个插件是ycm,也就是youcompleteme。这个,,我必须好好说一说。
安装ycm
这里甩上它的项目地址:YouCompleteMe
这是一个号称最难安装的vim插件!!!
文档上也有很详细的安装说明,不过全是英文,我相信有很多小伙伴和我一样英文水平捉急,所以我要在这里和大家分享一下我装这个插件的心路历程!!
安装这个插件的前提是你的vim要支持python滴,不过termux安装的vim当然是不支持的啦,然后网上的教程巴拉巴拉的介绍了一堆重新编译vim带上python的教程。这也太难了吧!!!因此termux都周到的替我们考虑好了,termux的官方源里就有带python的vim,只需要pkg install vim-python
就搞定!不放心的小伙伴可以vim --version
看看python的前面是不是已经出现了一个+号啊!!
前提已经搞定了,当然好戏都在后头。普通的插件下载到本地就好,但是!ycm需要在本地编译,难点就在这里。需要编译的话,随之而来的就是一系列的依赖问题,如需要sudo apt install build-essential cmake python3-dev
但是我始终找不到 build-essential,到官方源上看,这个包竟然是一个问题的包!!那这是不是意味着我们无法编译了呢?不是的,我在Google上看到了一个和我有相同烦恼的外国友人,这是他的项目地址 termux vim ycm.这哥们在这上面记录了安装ycm的一些步骤,其实他安装的那些依赖里头并没有 build-essential,也就是不需要这个依赖也可以编译。他针对termux打了一些补丁,但我却没办法成功打进去,可能是ycm更新的缘故。然后我就直接开始编译了。编译的时间大概几分钟,成功!!
所以,事实证明在termux上编译ycm缺少build-essential,并不是一件大不了的事,放心去编译吧!现在打开vim写个hello world看看吧!是不是舒服了许多??撒花结束???
但是,但是,不感觉缺了点什么吗??这个提示也太不智能了吧!!连头文件都没法正确识别,练常用的内置函数,变量,关键字都没法识别,仿佛缺少了灵魂。原因很简单,因为termux的特殊性,ycm默认的配置文件找不到库的位置。那怎么办呢?如下,先在.vimrc中写入let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py'
然后去修改这个文件的路径,在flag数组中加入
'-isystem',
'/data/data/com.termux/files/usr/include/c++/v1',
搞定!完结撒花!!!
更多推荐
所有评论(0)