emacs之配置自动安装脚本
emacsConfig下建立install目录,结构大概这样
.
├── auto-complete-etags-setting.el
├── auto-complete-setting.el
├── auto-complete-yasnippet-setting.el
├── autopair-setting.el
├── buffer-setting.el
├── clang-complete-async-setting.el
├── code-style-setting.el
├── dir-setting.el
├── etags
│ ├── kernel
│ ├── muduo
│ └── qt
├── etags-select-setting.el
├── evil-setting.el
├── gdb-setting.el
├── gtags
│ └── muduo
│ ├── GPATH
│ ├── GRTAGS
│ ├── GSYMS
│ └── GTAGS
├── gtags-setting.el
├── imenu-tree-setting.el
├── install
│ ├── imenu-tree-install
│ │ ├── install.sh
│ │ ├── patch
│ │ │ └── imenu-tree.el
│ │ └── readme
│ ├── _init.el_
│ ├── install.sh
│ ├── readme
│ ├── recipes
│ │ └── clang-complete-async.rcp
│ └── remove.sh
├── kbd-mouse-setting.el
├── monokai-theme.el
├── original-tags.el
├── php-setting.el
├── snippets
│ ├── custom
│ └── yas-git
├── speedbar-setting.el
├── switch-file-setting.el
├── tabbar-setting.el
├── ui-setting.el
└── window-setting.el
_init.el_
(add-to-list 'load-path "~/.emacs.d/el-get/el-get") (unless (require 'el-get nil 'noerror)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.github.com/dimitri/el-get/master/el-get-install.el")
(goto-char (point-max))
(eval-print-last-sexp))) (add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")
(el-get 'sync) ;不知道为什么,按照文档的设置无效,那么,就用我自己的吧
;(setq el-get-user-package-directory "~/.emacs.d/el-get-init-files/") ;------------------------------------------------------------------------------
;设置扩展文件所在目录
(add-to-list 'load-path "~/emacsConfig") ;逐个装载上面目录下所有的配置文件
(mapc 'load (directory-files "~/emacsConfig" t "^[a-zA-Z0-9].*.el$"))
install.sh
mkdir -p ~/.emacs.d/el-get-user/recipes
cp ./recipes/* ~/.emacs.d/el-get-user/recipes
cp ./_init.el_ ~/.emacs.d/init.el echo "Install success!";
remove.sh
rm -rf ~/.emacs.d echo "remove success!";
~/emacsConfig/install/recipes/clang-complete-async.rcp
(:name clang-complete-async
:website "https://github.com/Golevka/emacs-clang-complete-async"
:description "An emacs extension to complete C and C++ code using libclang."
:type github
:pkgname "Golevka/emacs-clang-complete-async"
:build '(("make"))
:depends auto-complete
:features auto-complete-clang-async
:prepare (setq ac-clang-complete-executable
(expand-file-name
(concat (el-get-package-directory "clang-complete-async") "clang-complete"))))
imenu-tree注意
~/emacsConfig/install/imenu-tree-install/patch/imenu-tree.el为修改过的imenu-tree.el
~/emacsConfig/install/imenu-tree-install/install.sh
cp patch/imenu-tree.el ~/.emacs.d/el-get/imenu-tree/imenu-tree.el echo "imenu-tree installed with position on right!";
readme
第一次安装,需要alt+x执行安装命令
el-get-install以下几个 evil
php-mode-improved
tabbar
auto-complete
auto-complete-etags(我这边没有补全效果)
etags-select(这个比较准确,比自带的好)
auto-complete-emacs-lisp
autopair
cc-mode+
sr-speedbar
yasnippet
auto-complete-yasnippet
imenu-tree(用来显示文件内symbol的插件,下面几个都是imenu-tree需要的插件)
imenu+
tree-mode
windata gtags(安装之前需要下面的命令)
debian:
sudo apt-get install global
mac:
brew install global
同时,需要ln -s做几个软连接
/usr/local/bin/global连接到/usr/bin
/usr/local/bin/gtags连接到/usr/bin clang-complete-async(安装之前需要下面的命令)
debian:
sudo apt-get install llvm-dev
sudo apt-get install libclang-dev mac:
brew install --with-clang --all-targets --rtti --universal --jit llvm,多点耐心,需要很久 -----------------------------------------------------------------------------
ecb:
由于method buffer的东西无法更新,因此放弃此库
----------------------------------------------------------------------------- imenu-tree
-----------------------------------------------------------------------------
安装查看install目录的imenu-tree-install子目录
----------------------------------------------------------------------------- 安装配置
auto-complete-etags etags:
生成tag:
自定义函数:generate-etags
加载tag:
自定义命令:load-etags
插件命令:visit-tags-table
查找定义:
快捷键:alt+o,d
命令:etags-select-find-tag-at-point
list-tags:
显示某个h文件内所有的tag gtags
生成tag:
自定义函数:generate-gtags
加载tag:
自定义命令:load-gtags
插件命令:gtag-visit-rootdir
查找变量引用:
快捷键:c-x,v
命令:gtags-find-symbol
查找函数引用:
快捷键:c-x,f
命令:gtags-find-rtag tag跳转:alt+enter
前进后退的快捷键为alt加方向键
F11切换h和cpp文件
ctrl+enter,打开include的头文件
F2打开speed-bar
F12打开imenu-tree 在启动就需要加载的tag需要在original-tags.el里面手工修改
emacs之配置自动安装脚本的更多相关文章
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- python3自动安装脚本,python3.x与python2.x共存
1.前言: python3过程中,通过搜索一些文章参考安装过程发现比较麻烦,而且还出现一些不可预期的报错.python3环境需要升级openssl,所以为了部署到其他环境更方便,写自动安装脚本方式,且 ...
- Windows ftp脚本和RSCD agent自动安装脚本
Windows ftp脚本 和bladelogic RSCD Agent自动安装脚本 比较简单的命令是msiexec /I "C:\RSCD85-SP1-WIN64.msi" /Q ...
- python第三方库自动安装脚本
#python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib&qu ...
- 【Devops】【docker】【CI/CD】docker启动的Jenkins容器 - 系统管理 - 全局工具配置 - 自动安装JDK、Maven、Git、Docker
本篇适用于jenkins是启动的docker容器,自动安装JDK Maven Git Docker等全局工具 ========================================= ...
- LAMP自动安装脚本
#!/bin/bash # 功能描述:LAMP自动安装脚本 # 初始化 if [ "$(cat /etc/system-release | awk '{print $(NF-1)}' | a ...
- 转来的emacs配置文件,自动安装插件
网上转来的emacs配置文件,便于自动安装插件,收藏起来 http://www.gogae.org/post-7/ EMACS是一个伪装成代码编辑器的操作系统. EMACS是一个非常强大的代码编辑器, ...
- 自动安装脚本-------------基于LVMP搭建Nagios 监控
Mysql初始化参数(mysql-5.6.31) /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local ...
- hadoop自动安装脚本
还不能实现完全自动安装,只能算半自动的. 进行交互主要障碍有两点: 1. ssh-keygen的时候需要点击回车. 2. passwd 需要设置密码 如果谁能解决以上两点,欢迎email给我. 另外 ...
随机推荐
- Git命令速查表【转】
本文转载自:http://www.cnblogs.com/kenshinobiy/p/4543976.html 一. Git 常用命令速查 git branch 查看本地所有分支git status ...
- 安装etcd集群
kuberntes 系统使用 etcd 存储所有数据,是最重要的组件之一,注意 etcd集群只能有奇数个节点(1,3,5...),本文档使用3个节点做集群. 一.基础环境 软件包 etcd下载地址:h ...
- System.data.sqlite安装
在这个页面可以下载安装不同版本的 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki x86的版本可以在64位机 ...
- hdu 6430 线段树 暴力维护
Problem E. TeaTree Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Oth ...
- 2017NOIP模拟赛-科普基地
今天回来打的第一场NOIP难度的试题,结果惨不忍睹.写一下每道题的做法,然后每道题犯的__弱智__错误 UPD:2018.9.15 突然这篇题解就变成很多大佬要看的了,因为之前是写给自己看的,所以写的 ...
- XML_Qt_资料
1.QXmlQuery Class _ Qt XML Patterns 5.7.html http://doc.qt.io/qt-5/qxmlquery.html ZC: evaluateTo(QAb ...
- 用PendingIntent传送数据丢失解决办法
当要设置一个闹钟时,可以把数据放在Intent里,再用intent对象生成一个PendingIntent对象,然后用AlarmManager 来邦定PendingIntent对象设置闹钟,具体代码如下 ...
- python numpy 学习
例子 >>> import numpy as np >>> a = np.arange(15).reshape(3, 5) >>> a array ...
- LeetCode 40
// 既然不能重复利用,就在递归中选择下一个数,不能重复的话,就用setclass Solution { public: vector<vector<int>> combina ...
- prim和kruskal比较
推荐:http://squirrelrao.iteye.com/blog/1044867 http://www.cnblogs.com/xwdreamer/archive/2011/06/16/22 ...