1
0
forked from x/ContextOS
ContextOS/usr/wiki/zsh_tmux_vim.md
2018-09-15 14:39:03 +08:00

200 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 《终端工具链》简介
终端工具链,就是对编程开发过程中所用到的各种命令行的工具进行高效的组合,不断的提升编程速度与开发效率。
- 在主流的系统中Ubuntu的命令行最为强大有丰富的命令行工具可以很容易组合出自己的终端工具链
- 其次是MacOSX命令行也很丰富再搭配上苹果电脑的硬件与系统可以组合出流畅的终端工具链
- 最后是Windows命令行功能弱的可以忽略但可以安装一个shell工具[git-scm](https://git-scm.com/downloads)使用一些基本的命令如果需要更丰富的命令行工具可以本地安装虚拟机或是远程连接云主机使用Ubuntu。
命令行终端,与图形界面不同,是以一种文本化的方式与系统进行交互。
可以很直接、很高效执行各种系统操作,同时各种重复性的操作,都可以很方便的写成程序脚本,和系统命令一样直接调用,不断的提升操作效率。
在终端里,有大量丰富的命令可以使用,不可能全部掌握,一些基本的命令会使用即可。
但在开发流程想提升编程速度与开发效率就需要深入理解与熟练掌握这几个工具zsh、tmux、docker、git、vim。
- **zsh** 和系统默认自带的bash一样也是一种shell不断的解析用户或脚本的输入执行各种命令。但提供了更丰富的特性如各种补全命令补全、文件补全、历史补全可以极大的提升操作效率。
- **tmux** 是一款高效的终端分屏器可以在终端把一块屏幕分成多个小窗口每个窗口都启动一个独立shell这样就可以充分的利用屏幕同时执行多个命令。
- **docker** 是一种容器软件,像虚拟机一样为应用软件提供一个完整独立的运行环境,但以一种更加轻量简捷的方式实现,极大的简化的软件的部署与分发。
- **git** 是代码的版本控制软件,用来管理代码的每次变化,分支与版本,本地与远程代码仓库,可以实现多人协作开发。
- **vim** 是一款强大的编辑器,通过模式化快捷键提升编辑速度,通过灵活的脚本与插件扩展丰富的功能。
使用zsh+tmux+vim的工具链根据自己的使用习惯进行个性化配置就可以极大的提升编程速度与开发效率。
## 入门指南
每个系统上打开终端的方式都不一样,根据自己的系统进行操作。
- 在Ubuntu中按Ctrl+Alt+T可以直接打开终端。
- 在Mac中打开Finder然后打开应用->实用工具->终端。
- 在Windows里先下载一个应用[git-scm](https://git-scm.com/downloads)按步骤安装即可然后打开应用Git bash。
打开终端后,你就打开了一个全新的世界,通过命令行,你就可以自由自在的控制你自己的电脑,并可以与世界成千上万的计算机进行各种交互。
先来体验一下基本的几个命令吧。
输入"date",并按回车,即可查看当前日期与时间。
```
$ date
Wed Sep 12 09:32:53 CST 2018
```
输入"pwd",并按回车,即可查看当前所在目录。
```
$ pwd
/Users/shaoying
```
### zsh使用
### tmux使用
### docker使用
### git使用
### vim入门
Mac上自带vim不需要安装。
Windows上安装了的git-scm也集成了vim也不需要单独安装。
但Ubuntu默认只安装了vivim需要自己安装一下。
```
$ sudo apt-get install vim
```
vim是最高效的编辑器没有之一。熟练掌握它的使用会极大的提升文本或代码的编辑速度。
当然与常见的其它编辑器不同vim有独特的操作模式刚开始使用会有些奇怪。
不过一但你理解了它的运行逻辑,适应了它的操作习惯,你这辈子都不会再想用其它的编辑器。
输入命令vim如果带有参数则会打开此文件如果没有参数则直接打开一个空文件。
```
$ vim hi.txt
```
按字母"i",进入编辑模式,然后就可以输入任意文本。
```
Hello Vim World!
Vim is best and fast.
You can use vim to input text or code into complute in a free style.
```
输入完内容后,按左上角的"Esc"键,就可以退出编辑模式,回到命令模式。
在命令模式下可以对文件内容进行各种查看、搜索、修改等操作。vim很多高效的操作都是在命令模式下执行的。
最后,需要保存文件并退出时,按冒号键":",进入底行模式,再输入"wq"并按回车。
```
:wq
```
与其它编辑器不同vim是一种模式化编辑器即处在不同模式下每个按键都会不同的功能。
之所以vim是最高效的编辑器这就是其中的原因之一。<br/>
常见的模式有:命令模式、编辑模式、底行模式。
启动vim后默认的模式是命令模式其它模式都是以命令模式为基准中心进行相互切换。即由命令模式切到到编辑模式由编辑模式切换到命令模式由命令模式切换到底行模式由底行模式切换到命令模式。
- 命令模式: 通过各种快捷键,对文件内容进行各种快速的查看、搜索、修改等操作。
- 编辑模式: 和其它编辑器一样,各种字母数字按键会当成文件的内容直接输入。
- 底行模式: 通过输入各种命令行调用vim各种函数或脚本对文件内容进行复杂的处理。
## 个性化配置
### zsh安装
Mac上自带zsh不用安装但Ubuntu上需要自己安装一下。
```
$ sudo apt-get install zsh
```
在Mac上将zsh设置为默认的shell。
```
$ chsh -s /bin/zsh
```
在Ubuntu上将zsh设置为默认的shell。
```
$ chsh -s /usr/bin/zsh
```
原生的zsh不是很好用可以安装一个[zsh插件管理器](https://github.com/robbyrussell/oh-my-zsh)。
更多信息可以查看[ohmyzsh官网](https://ohmyz.sh/)。
```
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```
如果在Ubuntu上没有安装curl可以安装一下。
```
$ sudo apt-get install curl
```
### tmux安装
[tmux源码](https://github.com/tmux/tmux)
Ubuntu上安装
```
$ sudo apt-get install tmux
```
Mac上安装
```
$ brew install tmux
```
如果Mac上没有brew可以安装一下[Mac包管理器](https://github.com/Homebrew/brew)。更多信息参考[HomeBrew官网](https://brew.sh/)
```
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
### docker安装
[docker下载](https://www.docker.com/products/docker-desktop)
[docker源码](https://github.com/docker/docker-ce)
### git安装
Mac上自带git不需要安装但Ubuntu需要自己安装一下。
```
$ sudo apt-get install git
```
### vim安装
Mac上自带vim不需要安装但Ubuntu需要自己安装一下。
```
$ sudo apt-get install vim
```
vim通过丰富的插件可以扩展很多功能定制出完全个性化的编辑器。
但大量的插件手动维护太复杂,可以下载一个[vim插件管理器](https://github.com/VundleVim/Vundle.vim)。
```
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
```
启用vundle插件管理打开~/.vimrc并添加以下第2行及以后的内容。
```
$ vi ~/.vimrc
filetype off
set nocompatible
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin indent on
```
#### YouCompleteMe安装
vim只是编辑器如果需要语法检查与补全功能可以安装插件[YouCompleteMe](https://github.com/Valloric/YouCompleteMe)。
打开.vimrc配置文件添加插件。
```
$ vim ~/.vimrc
Plugin 'vim-syntastic/syntastic'
Plugin 'Valloric/YouCompleteMe'
```
保存配置文件重新打开vim并执行安装命令。
```
$ vim
:PlugInstall
```
由于网络原因可能下载不了,可以手动下载插件。
```
$ git clone https://github.com/Valloric/YouCompleteMe ~/.vim/bundle/YouCompleteMe
$ cd ~/.vim/bundle/YouCompleteMe
$ git submodule update --init --recursive
```
不论是用vundle安装或手动下载都需要进入插件目录进行编译安装。
```
$ cd ~/.vim/bundle/YouCompleteMe
$ ./install.py --clang-completer
```
Ubuntu上如果没有cmake还需要安装一下。
```
$ sudo apt-get install cmake
```
#### vim源码安装
vim默认不支持python的语法补全如果需要用到python可以下载[vim源码](https://github.com/vim/vim),编译安装。更多信息查看[vim官网](https://www.vim.org/)
```
$ sudo apt-get install python
$ sudo apt-get install python-pip
$ sudo apt-get install python-dev
$ sudo apt-get install libncurses5-dev
$ sudo apt-get install build-essential
$ git clone https://github.com/vim/vim.git && cd vim
$ ./configure --with-features=huge\
--enable-pythoninterp\
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/\
--enable-multibyte\
--prefix=/usr/local/vim8/
$ make -j8
$ sudo mkdir /usr/local/vim8
$ sudo make install
```
## 源码解析