tmux和vim工具的使用

可以脱离本地环境,直接连服务器即可

tmux

作用

  1. 分屏
  2. 允许把终端断开之后继续运行(在tmux中写完全不需要担心断网)

构成

  1. 内部很多个session,每一个session可以开很多Window,每一个Window可以开很多个pane(pane为最小单位,即为shell对话框)

操作

  1. 直接输入tmux,就会打开一个session,其中包含一个window
  2. 切分:(有前缀键)ctrl加a/b(acterminal为a,没改的为b)后按%为左右分割;上下均分为ctrl加a/b后再双引号
  3. 关闭:选中后CTRL加d,当最后一个pane关闭时会关掉没有pane的window,最后一个window关闭时会关闭当前没有window的session
  4. 选中:鼠标光标选中,或者按前缀键后按方向键
  5. 修改分割线的位置:直接鼠标光标拖动分割线;后者按住前缀键的同时按方向键(前缀键必须按住不动,不松手)
  6. 全屏:选中想全屏的窗口后按下前缀键,后按z,进入全屏和退出全屏同理,
  7. 退出tmux:按下前缀键后按下d(不关闭tmux中的每一个pane,但是关闭tmux),再次打开:tmux+a或tmux+attach
  8. 创建一个window:ctrl加a后松开后按下c
  9. 翻阅:鼠标滚轮;前缀键加pageup或者pagedown
  10. 选中:shift+鼠标选中
  11. 复制:ctrl+insert
  12. 粘贴:shift+insert

    vim操作

  13. 可以在tmux中打开,防止当断网时会丢失数据
  14. 一般命令模式:没有办法编辑,可以输入命令,每一个字母都是一个命令
  15. 编辑模式:在一般命令模式下按下i键,既可以编辑,按下esc键盘即可退出编辑模式(进入编辑模式时底部会有insert提示)
  16. vim会自动识别代码类型,将会自动显示代码高亮
  17. 命令行模式:在一般命令模式下输入”:/?”(不包括引号),即可进图命令行模式,命令行在最下面,可以查找,替换,保存,退出,配置编辑器(即配置编辑器的基本配置,例如行号等)等

    具体操作:

  18. i进入编辑模式
  19. esc进入一般命令模式,无论是编辑模式还是命令行模式
  20. 移动光标时不会在行的开头和末尾自动换行,和普通编辑器不同!!!
  21. 移动光标:1:可以直接使用小键盘的方向键盘;2:可以使用hjkl,分别代表左下上右
  22. n :n为数字,按下数字后按下空格,光标会向右移动n个字符(必须进入一般命令模式下)(到行末会自动换行),此方法为跳到第n个字符的后面!!!(如果想要删除包括第n个字符的话可以输入n-1)
  23. 在一般命令模式下,按下0或home是将光标移动到本行开头,¥或end是移动到本行末尾
  24. 移动到最后一行:shift加g(即为G)
  25. 移动到某一行:用冒号加数字n或数字n加G,即将光标移动到第n行
  26. 跳过多少行:数字加回车
  27. gg第一行,G最后一行(当访问日志时,可能数据量很大)
  28. 查找是 /word 为查找光标之下的第一个值为word的字符串,?word为查找光标之上的第一个值为word的字符串
  29. n(小写)会重复上一次的查找操作,N(为反向重复前一次查找操作)
  30. 替换
  31. <:m,ns/word1/word2/g>:在第m到第n行中查找word1字符串,并且将其替换为word2
  32. <:1,$s/word1/word2/g>替换全文的word1字串为word2
  33. <:1,$s/word1/word2/gc>当替换每一个word1时会要求用户确认,输入y或n可以一次替换每一次查找
  34. <:noh>关闭查找关键词高亮
  35. 选中文本,和Windows系统的shift相同
  36. 删除选中的文本,和backspace相同,当删除的为某一行时,再次按p可以在鼠标光标的下一行粘贴删除的内容(类似剪切复制)
  37. 删除当前行,和ctrl+d相同
  38. 复制选中的文本
  39. 复制当前选中的行
  40. post或者为,当为复制的文本时为在光标的下一个位置粘贴,当为复制的为一行时(不一定是用yy复制的一行,也可以是用z选中的完整的行)为在下一行粘贴

  41. 撤销(dev和pycharm都是CTRL加z)
  42. <ctrl + r>==<ctrl+shift+z>:取消撤销(dev和pycharm也都是ctrl加y)(r可以理解为repeat,即重复)
  43. <ctrl+z>挂起当前进程,即保留当前的vim条件下关闭!!!
  44. <shift+>>选中整体后向右移动,如果不是选中整体时为将当前行向右移动;即<shift + >>为向右缩进一次
  45. <shift+<>选中后整体向左移动,如果不是选中整体时为将当前行向右移动,即<shift + <>为想左缩进一次
  46. <:w>保存,只读模式为<:!>来保存
  47. <:w:>强制保存(有时候未获得超级管理员权限时可以强制保存)
  48. <:q>退出,quit
  49. <:q:>强制退出
  50. <:wq>保存并退出
  51. <:set nonu>取消行号,当复制时避免连带行号一起复制
  52. <:set nu>恢复行号
  53. :删除所有文本(将光标移动到开头,设置为选中模式,再将光标移动到末尾)
  54. <=> :全文格式化,解决当代码复制的时候出现多重缩进的问题时
  55. paste模式:带有缩进的模式;<:set paste>为设置为带有自动缩进的模式,但是<:set nopaste>为设置不带有自动缩进的模式(要粘贴的话可以先set paste 后set nopaste)
  56. <CTRL+q>当vim卡死的时候,取消当前正在执行的命令
  57. 注意区分<shift+insert>和

    的区别:<shift+insert>可以粘贴vim外面的内容,粘贴的是系统自带的粘贴板;但是

    只能够粘贴vim内部的内容,粘贴的是vim内部的粘贴板

  58. <ctrl + insert>会复制行号,但是

    不会复制行号

    当用vim编辑文件时,会自动创建一个.filename.swp的临时文件

  59. 如果打开某个文件时,如果文件的swp已经存在则会报错
  60. 解决方法:1:找到打开文件的程序并退出,2:直接删除该swp文件即可

    操作整理

    很重要的翻页操作(当自己没有鼠标时非常实用)

  61. 在terminal中<shift+pageup>/<shift+pagedown>实现翻页(记住terminal中用shift)
  62. 在vim中用前缀键加/来实现(记住vim中用前缀键)

    使用的最大化pane窗口操作

  63. <ctrl + z>,最大化与退出最大化同样操作(z可以理解为最)

    关闭操作:

  64. vim的关闭为<:wq>(保存并退出)<:q>(直接退出)(详细上面有直接操作)
  65. pane的关闭:<ctrl + a + x>(前缀键加x)
  66. window的关闭<ctrl + b + &>(前缀键加&)
  67. 以上两条一般会提示是否关闭,y/n