About Tmux and Vim

2021/08/15

记录以下最近使用Tmux的一些设置和Vim的一些小技巧

tmux

tmux是类UNIX操作系统里面一款终端工具,常用来作为终端分屏或者挂起后台进程等

创建一个Session

我们可以使用tmux new session -s mysessionName 来创建一个Session,我在我的环境变量里将其设置了一个aliasalias tnew="tmux new session -s",这样子就可以直接使用tnew mysession直接创建一个新的session,不用敲那么多命令

挂起当前Session

挂起当前的这个session可以使用组合键Ctrl+b D(默认Control键加b然后按大写d)

创建一个分屏

使用hjkl在不同的pane之间来回切换

这边我们需要修改以下tmux的配置文件 ~/.tmux.conf,这样子我们可以使用组合键Ctrl+b hjkl来回切换

bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

使用hjkl对pane进行resize

在tmux的配置文件中加入以下配置

# 绑定Ctrl+hjkl键为面板上下左右调整边缘的快捷指令
# 注意我们还是需要先按下Tmux的命令键 Ctrl+b
bind -r ^k resizep -U 10 # 绑定Ctrl+k为往↑调整面板边缘10个单元格
bind -r ^j resizep -D 10 # 绑定Ctrl+j为往↓调整面板边缘10个单元格
bind -r ^h resizep -L 10 # 绑定Ctrl+h为往←调整面板边缘10个单元格
bind -r ^l resizep -R 10 # 绑定Ctrl+l为往→调整面板边缘10个单元格

Vim中的宏

昨天在处理一些文本需要一些批量化的工作去做,例如我需要将以下的文本删除最前的时间字符,后面的字符是特定格式的,于是我就想着要不要用vim的宏去处理一下

2021-08-08 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml
2021-08-09 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml
2021-08-10 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml
2021-08-11 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml
2021-08-12 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml
2021-08-13 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml
2021-08-14 12:12:00 CSGDailyPowerSchedulePlanFor_xxxx.xml

我们的目标是将上面的文本转化为以下格式

CSGDailyPowerSchedulePlanFor_xxxx.xml
CSGDailyPowerSchedulePlanFor_xxxx.xml
CSGDailyPowerSchedulePlanFor_xxxx.xml
CSGDailyPowerSchedulePlanFor_xxxx.xml
CSGDailyPowerSchedulePlanFor_xxxx.xml
CSGDailyPowerSchedulePlanFor_xxxx.xml
CSGDailyPowerSchedulePlanFor_xxxx.xml

可以通过下面的步骤完成该工作

  1. 切换光标到要处理的文本首行
    • gg, gg代表切换到行首
    • 0, 0代表切换到该行的第一个字符
  2. 切换到Vim的Normal模式
  3. 使用qa开始宏的录制
    • a代表后续的操作会被存储到寄存器a中
  4. 使用ctCj将时间字符删除,并使光标向下移动
    • ct是cut till的意思
    • CCSGDailyPowerSchedulePlanFor_xxxx.xml的第一个字符
    • j代表光标向下移动
  5. 使用q再次退出宏的录制
  6. 使用6@a执行6次宏操作

Comments🎉