私人定制 IDE — NeoVim

基础配置

基本操作

基本移动

  • h j k l

文本操作

  • d 删除
  • y 复制
  • d 删除
  • x 剪切
  • dw 删除字符

命令行快捷键:

Ctrl+A 行首
Ctrl+E 行尾
Ctrl+W 删除光标前的一个单词
Ctrl+K 删除光标后的文本
Ctrl+U 删除光标前的文本

单词移动

  • w
  • b
  • e
  • ge

行内移动

  • 0 行首
  • ^ 行首非空字符
  • $ 行尾

行间移动

  • 4j 向下移动 4 行
  • 12k 向上移动 12 行
  • gg 跳转到顶部
  • G 跳转到底部
  • :5050G 跳转到第 50 行

撤销和重做

  • u 撤销(Undo)
  • Ctrl + r 重做(Redo)

分屏

  • sh 代表水平分屏(Split Horizontally)
  • sv 代表垂直分屏(Split Vertically)
  • sc 关闭窗口 (Close)
  • so 关闭其他 (Others)
  • Alt + h/j/k/l 窗口之间跳转
  • 方向键 光标切换

搜索

  • /<pattern> 向下搜索模式
  • ?<pattern> 向上搜索模式
  • n 下一个匹配项
  • N 上一个匹配项

可视模式移动

  • v 可视模式(字符选择)
  • V 可视行模式(行选择),使用场景:拷贝/剪切/粘贴多行
  • Ctrl+v 可视块模式(块选择),使用场景:添加/删除多行注释

其它移动命令

  • % 在括号匹配之间跳转
  • } 移动到下一个段落的开头
  • { 移动到上一个段落的开头

其它

  • shift+k 查看类模块/函数文档
  • so %或 source %
  • wqa

nvim 配置结构

  • ~/.config/nvim/init.lua:Neovim 配置文件入口
  • 学会如何查看 nvim 的 runtimepath
  • nvim 框架 LazyVim keymaps

Options 配置

TODO

快捷键配置

TODO

主题

插件:tokyonight.nvim

文件管理

插件:nvim-tree.lua

  • 打开、关闭目录 e
  • 焦点切换 Ctrl + w
  • 新建文件/目录 a
  • 重命名文件/目录 r
  • 剪切移动文件/目录 x
  • 删除文件/目录 d
  • 拷贝文件/目录 y
  • 粘贴文件/目录 p

插件管理

插件:lazy.vim

  • :Lazy
  • :Lazy install
  • :Lazy update
  • :Lazy sync(相当于 install 和 update)

语法高亮

插件:nvim-treesitter

LSP

  • gd
  • gI
  • gr
  • gD
  • <C-o> 跳转到上一个位置 prev
  • <C-i> 跳转到下一个位置 next

搜索

Telescope

插件:telescope.nvim

  • <leader>f + f:Telescope find_files 查找文件
  • <leader>f + g:Telescope live_grep 查找内容

fzf

# 安装
brew install fzf

# 切换 Git 分支
git checkout $(git branch --all | fzf)

# 搜索文件
find . -type f | fzf

# 搜索 Git 提交记录
git log --oneline --pretty=format:"%d %h %s %ad %an" --date=short --graph | fzf

# 搜索历史命令
history | fzf

ripgrep

TODO

Git 支持

  • git log –graph
  • git diff
  • git blame
  • git branch
  • git checkout
  • git pull
  • git push
  • git stash

lazygit

安装 lazygit

brew install lazygit

快速了解 lazygit 的功能

标签页

插件:bufferline.nvim

  • 切换标签页
  • 关闭标签页
  • 关闭其它标签页
  • 关闭所有标签页

状态栏

插件:lualine.nvim

首页

插件:[dashboard.nvim]

Tmux

一、基础
理解 Tmux 的三大概念:Session(会话),Window(窗口)和 Pane(面板)
配置文件:$HOME/.config/tmux/tmux.conf

重载配置文件:tmux source $HOME/.config/tmux/tmux.conf
插件管理器:Tmux Plugin Manager

# tmux.conf

# Reset prefix key
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix

# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

run '~/.tmux/plugins/tpm/tpm'

找插件:https://github.com/tmux-plugins/list

二、快捷键
Prefix Key(PK):Ctrl+B

Session

  1. 创建新会话:tmux
  2. 创建自定义名称新会话:tmux new -s my-session
  3. 会话更名:PK+$
  4. tmux ls
  5. tmux a
  6. PK+S
  7. PK+W
  8. tmux attach -t my-session

Window

  1. 创建新窗口:PK+C
  2. 切换窗口:PK+0/1/2 或 PK+N/P
  3. 关闭窗口:PK+&

Pane

  1. 左右分屏:PK+%
  2. 上下分屏:PK+”
  3. Pane 之间移动光标:PK+方向键 或 PK+Q+0/1/2
  4. 移动 Pane:PK+{ 和 PK+}
  5. Pane 缩放:PK+Z
  6. 关闭 Pane:PK+X

三、参考资料

TODO