目录
文章目录
Zsh
编译安装高版本的 Zsh:
yum remove zsh
yum update -y
yum install -y git make ncurses-devel gcc autoconf man
git clone -b zsh-5.7.1 https://github.com/zsh-users/zsh.git /opt/zsh
cd /opt/zsh
./Util/preconfig
./configure
make -j 20 install.bin install.modules install.fns
command -v zsh | tee -a /etc/shells
chsh -s /usr/local/bin/zsh
oh-my-zsh
安装:
# 安装 oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
使用 powerlevel10k 主题(https://github.com/Powerlevel9k/powerlevel9k/wiki/Show-Off-Your-Config):
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
$ vim ~/.zshrc
...
ZSH_THEME="powerlevel10k/powerlevel10k"
source ~/.zshrc
CLI Prompt(可选):
$ cat ~/.zshrc | grep ZSH_THEME
ZSH_THEME="robbyrussell"
$ cat ~/.oh-my-zsh/themes/robbyrussell.zsh-theme
#PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ ) %{$fg[cyan]%}%c%{$reset_color%}"
#PROMPT+=' $(git_prompt_info)'
PROMPT='%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )${ret_status} %{$fg[cyan]%}%d%{$reset_color%} $(git_prompt_info)'
VIM
安装支持 Python3 的 VIM8:
yum remove vim-*
yum install git -y
yum install gcc gcc-c++ -y
yum install ncurses-devel -y
yum install python3 python3-devel python-devel -y
git clone --depth 1 https://github.com/vim/vim /opt/vim
cd /opt/vim
./configure --with-features=huge \
--enable-multibyte \
--enable-pythoninterp=yes \
--enable-python3interp=yes \
--with-python-config-dir=/usr/lib64/python2.7/config \
--with-python3-config-dir=/usr/lib64/python3.6/config-3.6m-x86_64-linux-gnu \
--enable-gui=gtk2 \
--enable-cscope \
--prefix=/usr/local/vim
make && make install
修改环境变量:
echo "export PATH=$PATH:/usr/local/vim/bin" >> ~/.zshrc
source ~/.zshrc
vim --version | grep python
Ctags(函数跳转)
Ctags(Generate tag files for source code)是 VIM 下的一款源码分析利器,默认安装在 VIM 中,但也有可能需要手动安装。
安装:
$ yum install ctags -y
ln -s /usr/bin/ctags /usr/local/bin/ctags
使用:
- 在源代码的上级目录,通常是项目的顶级目录执行指令:
ctags -R *
- 上述指令会生成 tags 文件,记录了所有函数的记录信息。
- 在 tags 文件所在的路径下打开源码文件,光标移至函数名处,快捷键 CTRL+] 进入函数。
- 快捷键 CTRL+t 退出函数,返回进入原点。
ctags -R * 这条命令会在当前目录下产生一个 tags 文件,当用户在当前目录中运行 vi/vim 时,就会自动载入此 tags 文件。其中的 -R 选项表示递归创建,包括源代码根目录(当前目录)下的所有子目录。
tags 文件中包括以下对象:
- 宏
- 枚举型变量的值
- 函数的定义、原型和声明
- 命名空间(namespace)
- 类型定义(typedefs)
- 变量(包括定义和声明)
- 类(class)、结构(struct)、枚举类型(enum)和联合(union)
- 类、结构和联合中的成员变量
注意,运行 vim 时,必须在 tags 文件所在的目录下运行,否则在 vim 启动后执行指令 :settags=<tags_path>
。显然,这样并不方便,所以可以通过修改 .vimrc 来解决这一问题:
" ctags setting
set tags+=/root/workspace/{project_name}/tags
Cscope(函数跳转增强)
Cscope 是类似于 ctags 一样的工具,可以认为是 ctags 的增强版。
查看 VIM 是否支持 Cscope:
$ vim --version | grep cscope
安装:
yum install cscope -y
Vundle(插件管理器)
安装:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim +PluginInstall +qall
NERD Tree(代码目录树)
NERD Tree 提供的项目目录结构浏览功能,极大的加强了开发者对整个项目目录结构的辨识和把控。
安装:
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
Plugin 'Xuyuanp/nerdtree-git-plugin'
Plugin 'ryanoasis/vim-devicons'
Plugin 'tiagofumo/vim-nerdtree-syntax-highlight'
NOTE:nerdtree-git-plugin 要求 git version == 2.30.1。
yum remove "git*"
yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm
yum install git
Tagbar(代码符号)
符号(Symbol)窗口列出了当前文件中的宏、全局变量、函数、类等信息,使用光标选择就能够跳转相应源代码的位置,非常便捷。
安装:
Plugin 'majutsushi/tagbar'
YouCompleteMe(代码补全)
YouCompleteMe 是一款快速、即用型的模糊搜索代码补全引擎,包括了以下几种引擎:
- 基于标识符的引擎,可与每种编程语言一起使用。
- 基于 UltiSnips 的代码片补全。
- 基于 Jedi 的 Python 2/3 补全。
- 基于 Clang 的 C 系列补全。
- 基于 Golang gocode 和 godef 的补全。
- 基于 racer 的 Rust 补全。
- 基于 OmniSharp 的 C# 补全。
- 基于 TSServer 的 TypeScript 补全。
- 基于 Tern 的 JavaScript 补全。
- 基于 jdt.ls 的 Java 补全。
- 基于 omnifunc 的 Ruby,PHP 补全。
安装:
yum install gcc gcc-c++ g++ python3-devel
pip2 intall cmake
# 安装 devtoolset-8-gcc-c++
yum install yum-utils -y
yum install centos-release-scl -y
yum-config-manager --enable rhel-server-rhscl-8-rpms
yum install devtoolset-8 -y
scl enable devtoolset-8 zsh
cd ~/.vim/bundle/YouCompleteMe
python3 ./install.py --clang-completer
python-mode(Python 开发支持)
python-mode 支持一下 Python 开发支持:
- 支持 Python2.6+ 及 Python3.2+
- 支持语法高亮
- 支持 virtualenv
- 支持代码折叠
- 支持自动缩进
- 支持在 Vim 中直接运行 Python 程序 (
<leader>r
) - 支持增加/删除 DEBUG 断点 (
<leader>b
) - 支持语法静态检查 (
:PymodeLint
) - 支持自动修复 PEP8 错误 (
:PymodeLintAuto
) - 支持代码自动补全
- 支持在 Python documentation 中进行搜索 (
<leader>K
) - 支持跳转到定义处 (
<C-c>g
) - 支持鼠标移动
- [[:跳到上一个类或函数
- ]]:跳到下一个类或函数
- [M:跳到上一个类或方法
- ]M:跳到下一个类或方法
- 支持代码重构
安装:
Plugin 'python-mode/python-mode'
NOTE:当使用 Pylint 作为静态检查 checker 时,需要先安装 Pylint。
pip3 install pylint
Syntastic(语法检查)
Syntastic 是老牌的语法检查插件,它通过外部语法检查器运行文件,并向用户显示任何结果错误,可以按需完成,也可以自动保存文件。
打开对应文件时,Syntastic 会自动进行语法检查,高亮错误的位置。虽然性能不及 ale,但兼容性要更好一些,支持大部分的语言(https://github.com/vim-syntastic/syntastic#1-introduction)。
注意,针对某些具体语言,指定了 checker,需要对应安装外部依赖,例如:pyflakes、pep8、jshint、golint 等。
vim-easymotion(快速移动光标)
参考:http://www.wklken.me/posts/2015/06/07/vim-plugin-easymotion.html
Dotfiles
dotfiles(点文件)顾名思义就是文件名前缀带 . 的文件,因为这类文件在 Linux 中一般为与系统环境相关的隐藏文件,例如:.vimrc、.bashrc、.profile、.bash_profile,所以在一定程度上 ditfiles 代表了 Linux 系统环境的个性化配置。
简而言之就是,如果在另外一台计算机中同步了这些 dotfiles 就能拥有与你自己的计算机基本一致的环境设置。了而且 dotfiles + Github 就能够实现只要有网络,那么所有的计算机都能够变成自己熟悉且习惯的样子。
git clone https://github.com/JmilkFan/dotfiles.git
ln -s dotfiles/.vimrc ~/.vimrc