tmux和vim工具的使用
可以脱离本地环境,直接连服务器即可
tmux
作用
- 分屏
- 允许把终端断开之后继续运行(在tmux中写完全不需要担心断网)
构成
- 内部很多个session,每一个session可以开很多Window,每一个Window可以开很多个pane(pane为最小单位,即为shell对话框)
操作
- 直接输入tmux,就会打开一个session,其中包含一个window
- 切分:(有前缀键)ctrl加a/b(acterminal为a,没改的为b)后按%为左右分割;上下均分为ctrl加a/b后再双引号
- 关闭:选中后CTRL加d,当最后一个pane关闭时会关掉没有pane的window,最后一个window关闭时会关闭当前没有window的session
- 选中:鼠标光标选中,或者按前缀键后按方向键
- 修改分割线的位置:直接鼠标光标拖动分割线;后者按住前缀键的同时按方向键(前缀键必须按住不动,不松手)
- 全屏:选中想全屏的窗口后按下前缀键,后按z,进入全屏和退出全屏同理,
- 退出tmux:按下前缀键后按下d(不关闭tmux中的每一个pane,但是关闭tmux),再次打开:tmux a或tmux attach
- 创建一个window:ctrl加a后松开后按下c
- 翻阅:鼠标滚轮;前缀键加pageup或者pagedown
- 选中:shift 鼠标选中
- 复制:ctrl insert
- 粘贴:shift insertvim操作
- 可以在tmux中打开,防止当断网时会丢失数据
- 一般命令模式:没有办法编辑,可以输入命令,每一个字母都是一个命令
- 编辑模式:在一般命令模式下按下i键,既可以编辑,按下esc键盘即可退出编辑模式(进入编辑模式时底部会有insert提示)
- vim会自动识别代码类型,将会自动显示代码高亮
- 命令行模式:在一般命令模式下输入”:/?”(不包括引号),即可进图命令行模式,命令行在最下面,可以查找,替换,保存,退出,配置编辑器(即配置编辑器的基本配置,例如行号等)等具体操作:
- i进入编辑模式
- esc进入一般命令模式,无论是编辑模式还是命令行模式
- 移动光标时不会在行的开头和末尾自动换行,和普通编辑器不同!!!
- 移动光标:1:可以直接使用小键盘的方向键盘;2:可以使用hjkl,分别代表左下上右
- n :n为数字,按下数字后按下空格,光标会向右移动n个字符(必须进入一般命令模式下)(到行末会自动换行),此方法为跳到第n个字符的后面!!!(如果想要删除包括第n个字符的话可以输入n-1)
- 在一般命令模式下,按下0或home是将光标移动到本行开头,¥或end是移动到本行末尾
- 移动到最后一行:shift加g(即为G)
- 移动到某一行:用冒号加数字n或数字n加G,即将光标移动到第n行
- 跳过多少行:数字加回车
- gg第一行,G最后一行(当访问日志时,可能数据量很大)
- 查找是 /word 为查找光标之下的第一个值为word的字符串,?word为查找光标之上的第一个值为word的字符串
- n(小写)会重复上一次的查找操作,N(为反向重复前一次查找操作)
- 替换
- <:m,ns/word1/word2/g>:在第m到第n行中查找word1字符串,并且将其替换为word2
- <:1,$s/word1/word2/g>替换全文的word1字串为word2
- <:1,$s/word1/word2/gc>当替换每一个word1时会要求用户确认,输入y或n可以一次替换每一次查找
- <:noh>关闭查找关键词高亮
- 选中文本,和Windows系统的shift相同
- 删除选中的文本,和backspace相同,当删除的为某一行时,再次按p可以在鼠标光标的下一行粘贴删除的内容(类似剪切复制)
- 删除当前行,和ctrl d相同
- 复制选中的文本
- 复制当前选中的行
- post或者为,当为复制的文本时为在光标的下一个位置粘贴,当为复制的为一行时(不一定是用yy复制的一行,也可以是用z选中的完整的行)为在下一行粘贴
- 撤销(dev和pycharm都是CTRL加z)
- <ctrl r>==<ctrl shift z>:取消撤销(dev和pycharm也都是ctrl加y)(r可以理解为repeat,即重复)
- <ctrl z>挂起当前进程,即保留当前的vim条件下关闭!!!
- <shift >>选中整体后向右移动,如果不是选中整体时为将当前行向右移动;即<shift >>为向右缩进一次
- <shift <>选中后整体向左移动,如果不是选中整体时为将当前行向右移动,即<shift <>为想左缩进一次
- <:w>保存,只读模式为<:!>来保存
- <:w:>强制保存(有时候未获得超级管理员权限时可以强制保存)
- <:q>退出,quit
- <:q:>强制退出
- <:wq>保存并退出
- <:set nonu>取消行号,当复制时避免连带行号一起复制
- <:set nu>恢复行号
- :删除所有文本(将光标移动到开头,设置为选中模式,再将光标移动到末尾)
- <=> :全文格式化,解决当代码复制的时候出现多重缩进的问题时
- paste模式:带有缩进的模式;<:set paste>为设置为带有自动缩进的模式,但是<:set nopaste>为设置不带有自动缩进的模式(要粘贴的话可以先set paste 后set nopaste)
- <CTRL q>当vim卡死的时候,取消当前正在执行的命令
- 注意区分<shift insert>和的区别:<shift insert>可以粘贴vim外面的内容,粘贴的是系统自带的粘贴板;但是 只能够粘贴vim内部的内容,粘贴的是vim内部的粘贴板
- <ctrl insert>会复制行号,但是不会复制行号 当用vim编辑文件时,会自动创建一个.filename.swp的临时文件
- 如果打开某个文件时,如果文件的swp已经存在则会报错
- 解决方法:1:找到打开文件的程序并退出,2:直接删除该swp文件即可操作整理 很重要的翻页操作(当自己没有鼠标时非常实用)
- 在terminal中<shift pageup>/<shift pagedown>实现翻页(记住terminal中用shift)
- 在vim中用前缀键加/来实现(记住vim中用前缀键) 使用的最大化pane窗口操作
- <ctrl z>,最大化与退出最大化同样操作(z可以理解为最)关闭操作:
- vim的关闭为<:wq>(保存并退出)<:q>(直接退出)(详细上面有直接操作)
- pane的关闭:<ctrl a x>(前缀键加x)
- window的关闭<ctrl b &>(前缀键加&)
- 以上两条一般会提示是否关闭,y/n