- 引入
- Iterm2配置和Zshell配置
- Tmux
- Vim配置
- 基本使用
- 插件配置
- Coc默认配置快捷键说明
- NerdTree快捷键
- 分屏:Buffer, Windows和Tab
引入
本着好程序员要用好终端的信念,加之在使用mac过程中对快捷键依赖度增加,对鼠标的依赖逐渐减少,所以打算尝试配置终端的代码编写环境。
不曾想到一脚踏入兔子洞,许多配置灵活性很强,深不见底,并非一次性可以配置完成,需要不断迭代,遂在此记录一些配置的教程和要点,不断完善。
软件:采用Iterm,shell是zshell,分屏和多任务处理采用tmux,文本编辑采用vim。
Iterm2配置和Zshell配置
Iterm:更改配色,字体和状态栏
zshell:使用oh-my-zshell配置git,终端命令自动补全,语法高亮插件
配置文件:.zshrc
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
参考教程
Tmux
视频教程
快捷键速查
进阶配置
Session:
命令 | 说明 |
---|---|
tmux [new -s sessionName] |
创建一个[指定名称的] tmux 会话 |
tmux kill-session [-t sessionName] |
终止Session |
tmux rename-session -t OldName newName |
给当前会话命名 |
tmux ls |
列出所有Session |
tmux a [-t sessionName] |
连接到一个已有Session |
Ctrl + b d |
分离当前Session |
Ctrl + b s |
列出所有Session |
Window:
命令 | 说明 |
---|---|
Ctrl + b c |
创建新窗口 |
Ctrl + b n |
切换到下一个窗口 |
Ctrl + b p |
切换到上一个窗口 |
Ctrl + b <n> |
切换到指定编号的窗口 |
Ctrl + b , |
修改当前window名称 |
Ctrl + b w |
显示所有的窗口,快速选择一个切换 |
Pane:
命令 | 说明 |
---|---|
Ctrl + b % |
水平分割 |
Ctrl + b " |
垂直分割 |
Ctrl + b <方向键> |
切换焦点 |
Ctrl + b :resize-pane -D/-U |
调整窗格大小(上下) |
Ctrl + b :resize-pane -L/-R |
调整窗格大小(左右) |
Ctrl + b x |
关闭当前窗格 |
Ctrl + b [ |
进入复制模式,在窗口中选择并复制文本 |
Ctrl + b ] |
退出复制模式,粘贴之前选中的文本 |
Vim配置
配置文件:.vimrc
基本使用
普通模式快捷键查缺补漏:
快捷键 | 说明 |
---|---|
o ,shift o |
在下一行插入,在上一行插入 |
:sp ,:vsp |
分屏(后面加文件则分屏打开对应文件) |
ctrl v |
Virtual Block模式 |
ctrl o |
后退 |
u |
撤销 |
ctrl r |
反撤销 |
普通模式编辑操作的基本逻辑:
<Operation> + <Motion>
操作符(Operation)
操作符 | 作用 | 示例 |
---|---|---|
d |
删除 | dw (删除单词) |
c |
删除并进入插入模式 | cw (更改单词) |
y |
复制 | yy (复制整行) |
p |
粘贴 | p (在光标后粘贴) |
> |
右缩进 | >> (缩进当前行) |
< |
左缩进 | << (减少缩进) |
g~ |
切换大小写 | g~w (切换单词大小写) |
gu |
变小写 | `gu |
------ | ------------------ | ----------------------- |
d |
删除 | dw (删除单词) |
c |
删除并进入插入模式 | cw (更改单词) |
y |
复制 | yy (复制整行) |
p |
粘贴 | p (在光标后粘贴) |
> |
右缩进 | >> (缩进当前行) |
< |
左缩进 | << (减少缩进) |
g~ |
切换大小写 | g~w (切换单词大小写) |
(小写直到行尾) | ||
gU |
变大写 | gUw (单词变大写) |
移动命令(Motion)
Motion | 作用 | 示例 |
---|---|---|
w |
移动到下一个单词起始 | dw (删除单词) |
e |
移动到单词结尾 | de (删除到单词结尾) |
b |
移动到前一个单词起始 | db (删除前一个单词) |
0 |
移动到行首 | d0 (删除至行首) |
` | Motion | 作用 |
------ | ------------------------ | ----------------------------- |
w |
移动到下一个单词起始 | dw (删除单词) |
e |
移动到单词结尾 | de (删除到单词结尾) |
b |
移动到前一个单词起始 | db (删除前一个单词) |
0 |
移动到行首 | d0 (删除至行首) |
\| 移动到行尾 \| `d$`(删除至行尾) |
| gg
| 移动到文件首行 | dgg
(删除至文件开头) |
| G
| 移动到文件末行 | dG
(删除至文件末尾) |
| fX
| 向右查找字符 X
| dfX
(删除到 X
) |
| tX
| 向右查找 X
前一字符 | dtX
(删除到 X
之前) |
| iX
| 在X
字符之间 | di"
(删除"
内的内容) |
| aX
| 在X
字符之间,包括X
| da"
(删除"
内的字符和"
) |
| ^
| 移动到行首第一个非空字符 | d^
(删除到行首第一个字符) |
| {
| 向上移动一个段落 | d{
(删除上个段落) |
| }
| 向下移动一个段落 | d}
(删除下个段落) |
插件配置
安装插件管理软件Vim-Plug,按照readme操作即可。
配置:vim状态栏airline,代码补全coc,目录树nerdTree,自动括号匹配auto-pairs
call plug#begin()" List your plugins here
Plug 'vim-airline/vim-airline'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'preservim/nerdtree'
Plug 'jiangmiao/auto-pairs'call plug#end()
参考教程
Coc默认配置快捷键说明
所处模式 | 快捷键 | 说明 |
---|---|---|
插入模式 | <C-s> |
选择范围选择 (通过 CoC 提供的功能触发) |
普通模式 | gd |
跳转到定义 (coc-definition ) |
普通模式 | gy |
跳转到类型定义 (coc-type-definition ) |
普通模式 | gi |
跳转到实现 (coc-implementation ) |
普通模式 | gr |
跳转到引用 (coc-references ) |
普通模式 | K |
显示文档预览窗口 |
普通模式 | <C-f> |
向下滚动浮动窗口/弹出窗口 |
普通模式 | <C-b> |
向上滚动浮动窗口/弹出窗口 |
可视模式 | if |
选择函数对象 (coc-funcobj-i ) |
可视模式 | ic |
选择类对象 (coc-classobj-i ) |
可视模式 | af |
选择整个函数对象 (coc-funcobj-a ) |
可视模式 | ac |
选择整个类对象 (coc-classobj-a ) |
操作模式 | if |
选择函数对象 (coc-funcobj-i ),如dif 删除函数内容 |
操作模式 | ic |
选择类对象 (coc-classobj-i ) |
操作模式 | af |
选择整个函数对象 (coc-funcobj-a ) |
操作模式 | ac |
选择整个类对象 (coc-classobj-a ) |
NerdTree快捷键
修改键位如下:
所处模式 | 快捷键 | 说明 |
---|---|---|
普通模式 | <C-b> |
开关任务树 |
普通模式 | <C-f> |
在任务树定位当前文件 |
在.vimrc 中添加: |
nnoremap <C-b> :NERDTreeToggle<CR>
nnoremap <C-f> :NERDTreeFind<CR>
分屏:Buffer, Windows和Tab
类比一下:
- Tmux相当于建立一个个虚拟桌面
- Vim好比是Vscode,是一个桌面软件
- Vim分屏相当于Vscode中的一个个页签
基本概念介绍
默认快捷键说明
修改快捷键:
" vim分屏
" 切换buffer
nnoremap <C-a> :bn<CR>
nnoremap <C-d> :bp<CR>" 切换windos
nnoremap <LEADER>s <C-W>s
nnoremap <LEADER>v <C-W>vnnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <C-w> <C-w>w" 调节windows大小
nnoremap <C-[> <C-w>+
nnoremap <C-]> <C-w>-
nnoremap <C-;> <C-w>>
nnoremap <C-'> <C-w><
在Vim界面如何进行文件管理:
- 在NerdTree界面按m呼出菜单操作
: e fileName
创建或编辑文件