neovim + tmux + fish Set up your workflow
零、本文介绍
- 阅读本文可以获得
- 使用neovim + tmux 构建属于你自己的workflow
- 阅读本文需知
- 本文根据Youtube博主-devaslife的学习心得,欢迎关注devaslife
- 建议稍微有些vim基础的同学观看。
- 本人是mac系统,建议使用mac来作为学习工具,windows都话可能需要自己研究一下。
一、neovim
1. 介绍
- neovim是一个开源的增强nvim的终端shell。neovim
- 它支持你随意配置,使其变成属于自己的编辑器。
- nvim/plugin是增强neovim能力的必要。
2. 安装
- 首先在电脑中,安装HomeBrew。HomeBrew
$ brew install neovim # 安装
$ nvim --version # 输出版本号,安装成功
$ nvim # 开启neovim模式
$ esc :q # 按下esc 输入:q退出neovim
3. 配置neovim
- 此处直接使用devaslif博主的配置。我将其简化并上传到自己的Github。workFlow配置
3.1 在配置之前要做的事情
- 安装Packer,为后续安装插件做准备
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
3.2 配置neovim
- 下载配置文件
$ cd ~/Desktop && git clone https://github.com/codehzy/workflow.git
$ mv ~/Desktop/workflow/nvim ~/.config/
- Packer安装插件
$ nvim
$ :PackerInstall # 此步骤必须在可访问github的环境下
$ :PackerSync # 如果想更新插件并对比远程开发者最新版本请使用此命令
- 友情提示: 安装插件后打开的你的具体文件可能会报错,请根据报错使用
brew
或npm
安装对应报错的依赖到全局
- 使用neovim
-
同步上述几步,你就可以很愉快的打开neovim了,上述配置适合前端开发者
-
了解快捷键:
- 通过查看刚下载的配置文件可以查看
nvim ~/.config/nvim/lua/plugin/craftzdog/maps.lua
查看对应快捷键nvim ~/.config/nvim/lua/plugin/craftzdog/plugins.lua
查看使用的插件
- 新增插件
nvim ~/.config/nvim/lua/plugin/craftzdog/plugins.lua
新增对应的nvim插件nvim ~/.config/nvim/after/plugin/xxxx.rc.lua
新增对应插件的配置,具体代码可以参考该插件README
- 通过查看刚下载的配置文件可以查看
-
在我看来只需要了解这两个文件即可,其他的都是基础配置。
- 对配置文件做一些解释
- C代表
ctrl
- 前缀键
Ctrl+t
- 按下前缀见,再根据配置中的按键进行学习。
- C代表
- 对配置文件做一些解释
4. 安装fish
- 这是一个终端可以自动补全的shell插件
$ brew install fish
- 个人觉得配置不需要单独配置就很好用
$ fish # 启动fish
5. 安装 tmux
5.0 配置tmux
$ cd
$ mv ~/Desktop/workflow/.tmux .
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local ~
5.1 终端动画
- 安装
$ brew install asciiquarium
- 操作
q
-退出动画
p
-暂停动画
r
-重置动画
5.2 会话相关
5.2.1 新建会话
第一个启动的Tmux窗口,编号是0,第二个窗口启动的编号是1。使用编号区分会话不太直观,建议给会话起名字
$ tmux new -s <session-name>
5.2.2 分离会话
在tmux窗口中,按下Ctrl+b
或者输入tmux detach
命令,就会将当前会话与窗口分离
$ tmux detach
- 上面命令执行后,就会退出当前Tmux窗口,但是会话和里面的进程仍然在后台运行
tmux ls
命令可以查看当前所有的Tmux会话
$ tmux ls
# or
$ tmux list-session
5.2.3 接入会话
tmux attach
命令用于重现接入某个已存在的会话
# 使用会话编号
$ tmux attach -t -
# 使用会话名称
$ tmux attach -t <session-name>
5.2.4 杀死会话
tmux kill-session
命令用户杀死某个会话
# 使用会话编号
$ tmux kill-session -t 0
# 使用会话名称
$ tmux kill-session -t <session-name>
5.2.5 重命名会话
tmux rename-session
命令用于重命名会话
tmux rename-session -t <now-time> <new-name>
5.2.6 会话快捷键
$ Ctrl + b d: 分离当前会话
$ Ctrl + b s: 列出所有会话
$ Ctrl + b $: 重命名当前会话
5.3 窗口相关
窗口组成的是会话,当会话建立以后会默认生成一个会话。多个窗口组成了一个会话。我们通常可以在某个会话中做着类似的工作,不同类型的工作通过会话来隔离。这个因人而异。
5.3.1 创建新窗口
tmux select-window
命令用来切换窗口,也可以用按下前置快捷键Ctrl + b
,然后按数字键切换。
# 切换到指定编号的窗口
$ tmux select-window -t <window.number>
# 切换到指定名称的窗口
$ tmux select-window -t <window-name>
5.3.2 重命名窗口
tmux rename-window
命令用于为当前窗口起名(或重命名),也可以按下前置快捷键Ctrl + b
,然后按r
$ tmux rename-window <new-name>
5.3.3 窗口快捷键
$ Ctrl + b c: 创建一个新窗口,状态栏会显示多个窗口的信息
$ Ctrl + b w: 从列表中选择窗口。(强烈推荐: 他可以跨session选择所有window)
$ Ctrl + b ,: 窗口重命名
$ Ctrl + b <number>: 切换到指定的编号的窗口,其中的`<number>`是状态栏上的窗口编号。
5.4 窗格相关
一个window可以切个为多个pane,也就是所谓的分屏,算是Tmux的核心功能之一。
5.4.1 划分窗格
tmux split-window
命令用来划分窗格
# 划分上下两个窗格,快捷键 Ctrl + b "
$ tmux split-window
# 划分上下两个窗格,快捷键 Ctrl + b %
$ tmux split-window -h
5.4.2 移动光标
tmux select-pane
命令用来移动光标位置,也可以按前置快捷键Ctrl + b,然后按方向键切换
# 光标切换到上方窗格
$ tmux select-pane -U
# 光标切换到下方窗格
$ tmux select-pane
# 光标切换到左边窗格
$ tmux select-pane -L
# 光标切换到右边窗格
$ tmux select-pane -R
5.4.3 交换窗格位置
tmux swap-pane
命令来交换窗格位置
# 当前窗格上移
$ tmux swap-pane -U
# 当前窗格下移
$ tmux swap-pane -D
5.4.4 窗格快捷键
下面是一些窗格操作的快捷键,窗格相关的快捷键比较多,毕竟是我们的主要工作区,但是实际用的非常频繁的并不多
Ctrl + b %
:划分左右两个窗格
Ctrl + b "
:划分上下两个窗格
Ctrl + b <arrow key>
:光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换下方窗格,就按方向键下。注意:此操作Ctrl + b 要按住。
Ctrl + b x
:关闭当前窗格
Ctrl + b ;
:光标切换到上一个窗格
Ctrl + b o
:光标切换到下一个窗格
Ctrl + b {
:当前窗格与上一个窗格交换位置
Ctrl + b }
:当前窗格与下一个窗格交换位置
Ctrl + b Alt + o
:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格
Ctrl + b Alt + 0
:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格
Ctrl + b !
:将当前窗格拆分为一个独立窗口
Ctrl + b z
:当前窗格全屏显示,再使用一次会变回原来带下
Ctrl + b q
:显示窗格编号
5.4.5 Mac安装Tmux
$ brew install tmux
前缀键
Tmux窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认前缀键是Ctrl + b
,即先按下Ctrl + b
,快捷键才会生效。
举例来说,帮助命令的快捷键是Ctrl + b
。它的用法是,在tmux窗口中,先按下Ctrl + b,再按下 ?
,就会显示帮助信息。