0
点赞
收藏
分享

微信扫一扫

VIM & Tmux

梯梯笔记 2022-04-06 阅读 90
vim

VIM & Tmux

最近一直在学VIM相关的东西,也看了一些视频,现在记录下

我的使用场景

我一直是在windows上做开发,公司内网也连不上外边,现在做法是上班时使用git bash,拷贝相关vim的插件,IDEA写java代码装上ideavim。
vscode也试过vim插件,设置里边可以指定.vimrc文件,但用起来特别卡顿,特别是代码hjkl移动时还会有延迟,可能的确是公司电脑配置实在太差了。。

回到自己宿舍电脑在WSL2上用vim和tmux。

看油管上vim的一些教学,他们用得实在是丝滑,还是得多练。

VIM & Tmux 安装

  • linux上比较容易,apt的执行 # apt get install vim; apt get install tmux
  • windows的得在wsl上执行,或者git bash自带了vim,tmux需要先安装,用pacman 安装 tmux后,具体可以搜windows pacman安装tmux,然后将相关tmux.exe和msys-event-xxx.dll复制到git的目录下,注意git版本不能太低,否则执行tmux没反应。

学习推荐

  • PegasusWang的教学视频,讲的很不错,入门很推荐看这个:初始vim,想说爱你不容易

  • 这个也比较全:vim-galore-zh_cn

  • b站这位个性化定制一些,看看他人怎么配的: 上古神器Vim:进阶使用/配置、必备插件介绍

  • 从老外教学看下他们视角里边的vim:Mastering the Vim Language

  • The Missing Semester Lecture3-Editor(vim)

VIM命令记录

d => delete
c => change (delete and enter insert mode)
> => indent
v =>  visually select
y => yank(copy)
s => substitute


ctrl+o/i :向前/后跳转

书签功能:
:mark :列出所有书签
ma :标志当前位置为标签a
'a 或者 `a :跳转到标签a的位置
S: 删除一行并进入
zz:光标所在行显示到屏幕中间
ZZ:保存并退出

goto功能,g命令具体可以看 :help g
gv:选中上次visual模式选中的地方
gi:跳转到上次修改的地方
gd:跳转到定义
gf:跳转到文件

页面查看移动
ctrl+f/b  前后翻一页
ctrl+u/d  前后翻半页

文本搜索
行内:
	f/F{char}
跨行:
	# *  查找光标当前所在word,前后匹配
	/ ? 向下/上查找
	n/N 前后匹配

基于word等的编辑
	a(around), i(inner), t
	w(word),t(tag),p(paragraph), " / { / ( 等一对的符号
	搭配使用:diw, ciw, viw, da(, ca(, da{, dt( 等
	
宏macro:
	q{registry}  开始录制宏
	@{registry} 使用宏

文本替换(使用substitute命令替换)
	:[range]s/{pattern}/{string}/[flags]
	flags有g(global), c(confirm), n(number, 报告匹配次数)
	eg. 
	:1,6 s/old/new/g
	:%s/old/new/g
	:%s/\<quack\>/jiao/g

复制和粘贴
	使用:set paste解决粘贴时autoindent缩进问题 :set nopaste取消,或者使用set pastetoggle=<F2>
	本地使用共享系统剪切板则无此问题,使用set +=uname

多文件编辑(buffer)
	:ls 显示打开的文件列表
	:b n 跳转到其他文件
	:bp 切换到下个文件
	:bd 只关闭当前文件
编辑窗口分割:
    <ctrl+w>s 水平分割, <ctrl+w>v 垂直分割
    :sp :vs
窗口切换:
    <C-w>w 循环
    <C-w>h/j/k/l
    <C-w>H/J/K/L 移动窗口 


块编辑(visual)
	v, ctrl+v, shift+v
	批量文本前后加文字方法:
	(1) ctrl+v, G, I <文字>, <esc> 
	(2) V, G, :norm I xxx
	(3) 宏

vim结合命令的一些操作:
    1. 对选中文本排序
    :<选中> !sort

    2. 对选中文本去重 
    :<选中> !sort -u 

    3. 对选中文本执行某个命令
    :<选中> !xxx 
    
    4. 读入当前目录的所有文件
    :r !ls 
    在新tab中打开文件
    <ctrl+w> gf

    5.读取http返回值
    :r! http GET <url>
    
    6. 在所有数字后加逗号
    :g/\d/norm A,

    7. 抽取所有private行,复制到当前位置
    :g/private/co$  co指copy

    8. 给一段列表添加递增序号
    <c-v>}kI0,<tab> <esc>gvg<c-a>

vim自动补全:
	ctrl+n/p 单词补全
	ctrl+x,ctrl+f 文件路径补全
	全能补全(插件实现)

.vimrc配置
	:h options-list :查看所有vim设置选项quickref.txt

vim键盘映射
	nmap/vmap/imap 分别在normal/visual/insert模式分别有效
	nnoremap/vnoremap/inoremap 非递归映射
	
vim插件管理器
	如vim-plug,查看相关插件推荐 http://vimawesome.com

VIM键位图示

在这里插入图片描述
在这里插入图片描述

Tmux命令记录

  • session
    tmux new -s $session_name 创建会话
    tmux attach/a $session_name 切换到会话
    <C-b>s 会话切换
    <C-b>d 暂时离开会话
    <C-b><C-d> 关闭会话
  • window
    <C-b>, 窗口重命名
    <C-b>c 新建窗口
    <C-b>[number] 切换窗口
    <C-b>p/n, 切换window
  • pane
    <C-b>% 竖直创建pane
    <C-b>[方向键] 切换pane
举报

相关推荐

0 条评论