mac + iterm + 远程开发 快捷键和工具--戴上手套搬砖
文章目录
- @[toc]
- 前言:
- A、why 快捷键?
- B、why 工具?
- 一、mac
- 1.1 打开程序
- 1.2 触控技巧
- 1.3 键位修改
- 1.4 为 App 自定义快捷键的方法
- 1.5 常用快捷键
- 1.6 推荐软件
- 二、iterm2
- 2.1 profile 配置
- 2.2 设置:触控板滑动==鼠标滚轮
- 2.3 ssh session 复用
- 三、shell 命令行(centos)
- 3.1 .bashrc
- 3.2 常用快捷键
- 3.3 常用命令
- 四、tmux
- 4.1 tmux 是什么
- 4.2 tmux 可以做什么
- 4.3 tmux 个性化配置
- 4.4 tmux 常用命令
- 4.5 tmux 常用快捷建
- 4.6 登录自启动
- 4.7 tmux 上传、下载文件
- 4.8 先登录tmux,再切换到共用账户,不要颠倒了
- 五、vim
- 5.1 why vim
- 5.2 提高效率的思想 --避免无意义的重复
- 5.3 vim 的几种模式
- 1、普通模式
- 2、插入模式
- 3、可视模式
- 4. 命令行模式
- 5.4 更快的移动
- 5.5 强大的vim 插件
前言:
本笔记
- 仅针对 ’mac + iterm + 远程开发 ' 场景,其他场景暂不涉及,可能不适用
- 仅分享一些个人小经验、观点和习惯,主要目的是为了交流,了解更多、更快、更好的工具用法
- 记录和交流,加速成长,同时方便随时查阅
A、why 快捷键?
- 快捷键-快
- 快捷键可以让双手不离键盘
- mac 上鼠标有些鸡肋,快捷键 + 触控 就够了
B、why 工具?
个人以为:
- 人都是懒惰的
- “构思代码” 远重要于 “敲代码”
- 大量重复的劳动是没有价值的
- “工具”,换言之,就是“通用方法、类的抽象”,避免代码重复
- 当非常频繁使用一个工具的时候,为什么不深入了解、吃透它呢?
最终目的:让搬砖摆脱束缚,快速完成 “思想” 到 “代码”的转换。
一、mac
相比windows而言,linux 和 mac os:
- 更加透明,当具有sudo 权限时,Everything is under control.
- 系统和软件上给予了用户更大的自主性。允许根据个人习惯自定配置。
这两点对于搬砖工人有很强的吸引力
1.1 打开程序
- cmd + 空格
- 搜索程序
- enter
- (可以使用 Alfred 给你更强大的体验,没用过的童鞋可以google一下)
1.2 触控技巧
三指轻点查询(快速查看英文单词很有用)
- 配置路径:系统偏好设置 > 触控板
三指拖移(比如拖移选中一段文本)=按下鼠标拖移
- 配置路径:系统偏好设置 > 辅助功能 > 指针控制 > 触控板选项 > 启用拖移
1.3 键位修改
大写锁定键(中英切换键)更改为 Control 键,十分建议
- 配置路径:系统偏好设置 > 键盘 > 修饰键
原因:ctr 比大小写转换视频频次高出太多
替换后中英文切换可以:ctr + 空格 替代
其他键位修改
Mac键位修改神器- karabiner-elements
(例如 方向键替换 为 cmd + hjkl),
1.4 为 App 自定义快捷键的方法
配置路径:系统偏好设置 > 键盘 > 快捷键 > App 快捷键 > + > 选中App > 给对应菜单栏选项增加快捷键
- 例如在 Typora 程序中,自定义 插入代码块的 快捷键为:ctr + c
1.5 常用快捷键
聚焦搜索
cmd + 空格
全屏&取消
ctr + cmd +f
锁屏
ctrl + cmd + q
文件快捷键
剪切文件
cmd + option + v
返回上层路径
cmd + 向上箭头
通过路径访问访达
cmd + shift + g
新建文件快捷键
- 巧用Automator创建新建文档服务
1.6 推荐软件
typora
本地笔记软件(频繁用云不推荐),但是本地很安全,符合公司要求
默认不显示预览窗口,markdown编辑实时生效
轻量、酷炫、好用
相关配置:
typora 更改显示宽度等
即,在主题文件配置下(打开偏好设置 -> 打开主题文件夹 -> 新建 github.user.css 文件),增加 "主题.user.css"文件 写入
示例代码
/* 调整视图正文宽度 */ #write{max-width: 90%; }/* 调整源码正文宽度 */ #typora-source .CodeMirror-lines {max-width: 90%; }/* 调整输出 PDF 文件宽度 */ @media print {#write{max-width: 95%;}@page {size: A3;} }/* 调整正文字体,字体需单独下载 */ body {font-family: IBM Plex Sans; }
pdf expert
- 支持pdf 阅读、批注。
- pdf-expert + onedrive 可以在mac pad 之间同步
EdrawMax 画图软件
- 大量素材库
OmniPlan
- 甘特图
…
二、iterm2
2.1 profile 配置
目的:配置多个profile,使用时,cmd + o 快速打开
配置路径:preference > Profiles
每个profile 配置不同的 ssh 命令,登录不同的远程开发机。
每个远程可以自定义一些配置,如配色、字体大小、回滚行数历史等
示例:我建了4个(default为公司新堡垒机,腾讯云开发机,mac本地,公司旧堡垒机)
- terminal 以 256色启动,适配 tmux 和vim 配色
2.2 设置:触控板滑动==鼠标滚轮
配置路径:preference > Advanced > Mouse >
效果:可以在vim 中 触控上下滑动
tmux 中 上下触控会变成 回溯历史命令
- 解决办法: tmux前置快捷键 + [ (变为上下滚动屏幕)
- ctr + [ 重新变为 回溯历史命令
2.3 ssh session 复用
ssh 时,为了方便,避免每次登录输入密码,通常使用ssh密钥登录。
如果没有或者无法设置秘钥(如公司堡垒机), 需要使用密码登录,若每次都输入密码(网盾)十分繁琐。
可以设置ssh连接会话复用,登录成功后,在会话的生命周期内,再次登录同一台主机(比如新开一个窗口)不需要输入密码。
方法:在 mac ~/.ssh/config 文件中添加(没有则创建一个就好)
host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
三、shell 命令行(centos)
3.1 .bashrc
shell :能解释输入进终端的东西,并基于输入来运行命令的“壳”。
unix 操作系统下有很多不同的shell,bash 是我们最经常用的,也是最主流的一种。
每个用户目录下都会有个 ~/.bashrc 文件,用于定制终端配置和环境变量
当登录时,以及每次打开新的shell时,~/.bashrc被读取并应用.
如果想 .bashrc 更改立即生效
source ~/.bashrc
- 传送门:Linux中profile、bashrc、.bash_profile、.bashrc、.bash_profile之间的区别和联系以及执行顺序
3.2 常用快捷键
清空屏幕
- clear
- ctr + l
历史命令
- history
- 上一条命令:上箭头 或者 ctr + p
- 下一条命令:下箭头 或者 ctr + n
移动
快捷键 移动 ctr + a 移动到行首 ctr + e 移动到行尾 ctr + b 向左移动一个字符 ctr + f 向右移动一个字符 option(alt) + b 向左移动一个单词 option(alt) + f 向右移动一个单词
删除
快捷键 删除动作 ctr + h 向左删除一个字符 ctr + u 向左删除到行首 ctr + k 向右删除到行尾 ctr + w 向左删除一个单词
3.3 常用命令
文件传输
开发机之间
nc (传输单文件,文件夹可以先打包/压缩)
接收:nc -l port > file_name
nc -l 9998 > test.txt
发送:nc ip port < file_name
nc 10.26.21.144 9998 < test.txt
快速查看本机ip
ifconfig | grep inet
mac 与 远程 开发机
- sz,rz (tmux 中不能用,需要临时退出)
文件同步
- wget + http 服务器
- rsync 服务器
wget :从指定的url 下载文件,
- -c 断点续传
- –limit-rate=30m 限速30m
- -O 输出到
wget -c --limit-rate=30m 10.26.21.144:6200/http_files/text_mining/text_similarity/text_sim_data.zip -O text_sim_data.zip
其他常用命令
命令 + --help;man + 命令;info + 命令 三种方式查看 shell 命令手册
du 显示目录、或文件占用的磁盘空间
du -h -d 1
df -h 查看各分区磁盘空间
free -h 查看内存状态
top/htop linux 进程监控
shuf 文件乱序
sort 文件内容排序
uniq uniq文件内容,需要配合 sort 使用
split 分割文件
…
四、tmux
推荐教程:
- 手把手教你使用终端复用神器 Tmux
4.1 tmux 是什么
tmux 是一个终端复用工具
可以解决以下尴尬场景:
- 并行工作,想同时打开多个窗口工作。不用再重新打开个一个终端窗口 ssh 到服务器。
- 运行一个脚本,服务器断掉失联之后当前进程被服务器给无情地杀掉,不得不用 nohup 等方式让脚本在后台跑。
- 每次 ssh 到服务器都要重新切到工作目录,打开多个进程等,之前的工作记录会丢失。
- 鼠标是个伟大的发明,但不幸的是,开发者使用终端的时候,在鼠标和键盘之间来回移动和定位,不仅浪费时间,还可能会影响你的思路
4.2 tmux 可以做什么
- tmux可以开多个session,多个窗口,多个分屏。可以很方便的切换,互相之间也并不影响。
- tmux可以自动保存所有的窗口和session,掉线后可以重新打开, 完全复现掉线之前的工作状态。
- 安装:
sudo yum install tmux
4.3 tmux 个性化配置
- 在个人目录下新建tmux配置文件(不配置也可以调用tmux,会使用默认配置)
touch ~/.tmux.conf
- 建议将 tmux 前置键改为:ctr + j 或者 ctr + x 默认的 ctr + b 太难用了
- 配置内容可以参考:配置代码
这个配置文件最主要的变动是,把tmux默认的Prefix-Command前置快捷键 从 ctr + b 替换成了 ctr + x ,把键程缩短了。
4.4 tmux 常用命令
启动新会话:
tmux [new -s 会话名 -n 窗口名]恢复会话:
tmux at [-t 会话名]列出所有会话:
tmux ls关闭会话:
tmux kill-session -t 会话名关闭所有会话:
tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
4.5 tmux 常用快捷建
进入tmux环境后,按下前置快捷建 ctr + x 后松开,再按以下快捷键:
1.会话:
:new<回车> 启动新会话
s 列出所有会话
$ 重命名当前会话
2.窗口:
c 创建新窗口
w 列出所有窗口
n 后一个窗口
p 前一个窗口
f 查找窗口
, 重命名当前窗口
& 关闭当前窗口
3.窗格(分屏)
% 垂直分割
" 水平分割
o 交换窗格
x 关闭窗格
⍽ 左边这个符号代表空格键 - 切换布局
q 显示每个窗格是第几个,当数字出现的时候按数字几就选中第几个窗格
{ 与上一个窗格交换位置
} 与下一个窗格交换位置
z 切换窗格最大化/最小化
4. 临时退出
ctr + d
4.6 登录自启动
如果想要登录服务器是,tmux 自动启动,登录时自动执行以下动作:
- 如果没有tmux session,自动创建
- 如果存在已有的工作session, 自动 attach
方法如下:
- 编辑 ~/.bashrc 文件,添加以下内容
# User specific aliases and functions
# 登陆自启动tmuxtmux_init()
{tmux new-session -s "personal" -d -n "local" # 开启一个会话tmux -2 attach-session -d # tmux -2强制启用256color,连接已开启的tmux
}# 判断是否已有开启的tmux会话,没有则开启
if which tmux 2>&1 >/dev/null; thentest -z "$TMUX" && (tmux -2 attach || tmux_init)
fi
4.7 tmux 上传、下载文件
不要在tmux窗口中使用sz,rz
tmux不支持sz,rz传输文件,不然会直接卡死,目前还没有找到好的解决办法,欢迎补充。
只能用笨办法,前置键 & ctr + d 临时退出tmux,传完文件,再 tmux -2 at 回来
4.8 先登录tmux,再切换到共用账户,不要颠倒了
- tmux 是根据每个用户保存session 和窗口的,如果开发时存在多人共用的公共账户,应该先启动tmux,再切到公共账户。如果颠倒了,你就可以直播别人写代码了
五、vim
推荐书籍:vim实用技巧
这里仅列举最常用的vim 快捷键和技巧
5.1 why vim
相比IDE,vim的优势:
- 开发机上标配vim,而IDE 你只能本地mac用,不用同步代码。
- 熟悉vim快捷键、设计模式后,可以让书写跟上思维。
- vim摒弃了鼠标操作,双手基本不用离开键盘,不会因为鼠标、触控、键盘切换打断思维。
- vim 丰富的插件足以比肩IDE
5.2 提高效率的思想 --避免无意义的重复
如果一个操作要执行10次,宁愿第一次执行这个操作稍微复杂一点,也不机械、缓慢地重复这个操作多次。
1. 用好 “.” 命令
. 命令重复一次上次的修改
什么算是 “修改”
- 从进入insert到离开insert模式,整体算作一次修改
- dd,x 这些命令也都算修改
- hjkl 等移动不算修改
- 所有单纯查找移动的动作,都不算修改,. 不能复现
总结:所有涉及到从普通模式切换到插入模式的命令都可以用 “.” 复现
2. 使用简单的复合命令,减少无关的移动
例如:
复合命令 | 等效命令 | 执行动作 |
---|---|---|
A | $a | 移动到行尾并进入编辑模式 |
C | c$ | 删除到行尾,并进入编辑模式,并存入缓冲区,可以使用 p在制定位置插入 |
s | cl | 删除当前字符,并进入插入模式 |
S | ^c | 删除当前行(从缩进头到行尾)并进入编辑 |
I | ^i | 到行手首(缩进头)第一个字符并插入 |
O | ko | 在上面新建一行 |
o | A | 在下面新建一行 |
3. 执行、重复、回退 的模式
- 执行一个操作
- “.” 命令重复
- u 撤销上步操作(ctr + r 取消撤销)
5.3 vim 的几种模式
1、普通模式
普通模式中,有一系列的操作命令可以执行。理论上,使用vim时,你应该有相当长的时间处于这个状态,如果你大部分时间都处于插入状态,那么意味着你没有利用好vim。
vim 区分普通模式和插入模式的好处在于:
- 停顿时可以进行思考穿梭
- 可以把撤销的单元切成块,方便用户控制撤销粒度。(从插入到退出)
- 可以构造可重复的修改
- 普通模式下:操作符 + 命令范围 双剑合璧,十分强大
- 例如删除 一个单词命令: daw
要习惯在普通模式下:“操作命令 + 范围 ” 的快捷方式,非常强大
常用的vim的操作符命令
命令 | 用途 |
---|---|
c | 修改 |
d | 删除 |
y | 复制到寄存器 |
g~ | 反转大小写 |
gu | 转换为小写 |
gU | 转换为大写 |
> | 增加缩进 |
< | 减小缩进 |
常用的命令范围
文本范围
文本对象命令 选择范围 iw 当前单词 aw 当前单词及后面的空格 iW 当前字串 aW 当前字串及后面的空格 is 当前句子 as 当前句子及之后的空格 ip 当前段落 ap 当前段落及之后的空行 分割符文本对象范围
分隔符对象命令 范围区域 a( 或者 a) 或者 ab 小括号和其里面的内容 i( 或者 i) 或者 ib 小括号里的内容 a{ 或者 a} 或者 aB 大括号和其里面的内容 i{ 或者 i} 或者 iB 大括号里面的内容 a[ 或者 a] 中括号和其里面的内容 i[ 或者 i] 中括号里面的内容 a< 或者 a> 尖括号和其里面的内容 i< 或者 i> 尖括号里面的内容 a’ 或者 a’ 单引号和其里面的内容 i’ 或者 i’ 单引号里面的内容 a" 双引号和其里面的内容 i" 双引号里面的内容 a` 反引号和其里面的内容 i` 反引号里面的内容 at 一对xml 标签和里面的内容,例如 it 一对xml 里面的内容,例如 其他范围
范围命令 范围区域 G 到文件尾部 gg 到文件头
- 额外规则,操作符命令执行两次,默认作用于当前行,如dd
2、插入模式
插入模式仅用于输入,掌握在插入模式下可用的快捷键即可。
在插入模式下及时更正错误
删除快捷键集合, 与shell相同,注意ctr k 与shell不同
快捷键 左右 ctr + h 删除前一个字符 ctr + w 删除前一个单词 ctr + u 删除到行首(缩进头)
返回普通模式
- esc 或 ctr + [
3、可视模式
可视模式,分为三种:
快捷键 | 可视模式 |
---|---|
v | 字符可视模式 |
V | 行可视模式 |
ctr +v | 列可视模式 |
普通模式 VS 可视模式:
普通模式下,我们 是 “操作 + 范围”
而在可视模式下,我们是 “范围 + 操作”
在可视模式下,光标跳转指令 hjkl f ; 等命令都可用
- 选择高亮区域
- 不同模式之间按快捷键键切换
- 按快捷键两次返回普通模式
- esc返回普通模式
- o 键返回活动的端点,可以重新开始选择
- 列模式下, $ 可以把选区扩大到每行行尾, A就可以在每行行尾添加内容
- “.” 可以重复列、行模式操作,但是字符不要重复,容易出错
- “I”,“A” 在可视模式可用,“a” “i” 不可用 I 相当于i,A 相当于
4. 命令行模式
普通模式适合光标所在处小范围的操作,命令行模式适合距离较远的大范围的操作
- “:” 调出命令行模式,esc返回普通模式
- 可以在命令行下使用
1、行号做地址
:行号1,行号2 + 命令
删除 第15行到20行
:15,20d
删除第15行到当前行
:15,d
2、运行 shell 命令
- !+ shell 命令
- : shell 会启动一个交互式shell , exit 退出
- ctr z + fg 更加方便 fg(foreground)
3、打开另一个文件
在本窗口打开
:e file_name
:bn 切换下一个打开的文件
垂直分屏打开文件
:vs 文件路径/文件名 在新的垂直分屏中打开文件
水平分屏打开文件
:sv 文件路径/文件名 在新的水平分屏中打开文件
5.4 更快的移动
让手指一直保持在盲打手指键位上
1、基于单词的移动
命令 | 移动范围 |
---|---|
w | 向后移动到下一个单词的开头 |
b | 向前移动到当前单词/上一个单词的开头 |
e | 向后移动到当前单词/下一单词的结尾 |
ge | 向前移动到上一单词的结尾 |
- ea 命令连起来为, 在当前单词后插入, 要习惯成一个命令
- W、B、E都是基于“串”的移动,串以空白作为分割
- 单词和字串
- 单词:一个单词由字母和数字和下划线组成,单词之间以空白字符组成
- 字串:非空白字符序列
- 更快移动基于字串,更细粒度基于单词
2、基于行间查找的移动
行间查找命令 | 含义 |
---|---|
f{char} | 向右移动到{char}的所在位置 |
F{char} | 向左移动到{char}的所在位置 |
t{char} | 向右移动到{char}的所在位置 的前一个字符上 |
T{char} | 向左移动到{char}的所在位置 的后一个字符上 |
; | 重复前一次查找移动 |
, | 反向执行上一次的查找移动 |
删除命令 + 行间查找
d + 查找命令
替换插入 + 行间查找
c + 查找命令
这两个操作,可以 用 “.” 重复执行
5.5 强大的vim 插件
使用一系列vim 插件和配置,可以让vim打造地更像一个IDE环境。
之前写过两篇详细的笔记, 有时间会迁移过来
mac + iterm + 远程开发 快捷键和工具--戴上手套搬砖相关推荐
- 基于adb和shell命令的Android Mac电脑日常开发效率小工具
一.制作一个能双击执行的mac command指令 Mac快捷键comand+空格,输入terminals打开terminals 输入touch 文件名.command touch test.comm ...
- mac 查看远程beanstalk队列的工具
文章目录 场景 aurora 场景 mac系统在本地查看远程beanstalk的状态 aurora aurora 安装 brew install aurora 用法 aurora
- 孤独患者福音!日本科学家开发小型“大白”,戴上就能缓解痛苦焦虑
鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 一个人看恐怖电影被吓得不轻? 或许,你需要一个来自毛绒机器人的"抱抱". 就像这样,科学家已经通过实验证明,当这个毛绒绒的家伙 ...
- 手把手教你配置VS Code 远程开发工具,工作效率提升N倍
来源 | 后端技术学堂 责编 | Carol 封图 | CSDN 付费下载于视觉中国 今天和大家分享一个远程开发解决方案,聊一聊我平常是如何用 VS Code 进行远程开发工作的,以及一步步教你搭建远 ...
- kali远程登录window_手把手教你配置VS Code远程开发工具,工作效率提升N倍
码小辫专注更多编程视频和电子书天天在用钱 今天和大家分享一个远程开发解决方案,聊一聊我平常是如何用 VS Code 进行远程开发工作的,以及一步步教你搭建远程开发环境,拥有比德芙还丝滑的远程开发体验. ...
- 体验IntelliJ IDEA的远程开发(Remote Development)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 IDEA的远程开发功能,可以将本地的编译.构 ...
- 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...
- 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)
本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...
- MAC版php开发工具推荐:10款最流行的mac版php开发工具
目前使用MAC ios系统的php开发者越来越多.那目前MAC下php开发都用哪些工具呢?可能对于php初学者不知道该用哪些或者哪些mac版的php开发工具比较好?php中文网特为PHP开发者推荐几款 ...
最新文章
- go语言中fmt包中Print、Printf、Println输出相关函数的区别
- map(&:name)在Ruby中是什么意思?
- HTML5手机手写签名开发,html5手写签名
- WinCE中sources文件中targetlibs与sourcelibs的作用与区别
- CentOS下的账户管理
- 值得推荐的中文版WF/WCF图书
- springboot启动太慢优化
- 最新优秀的通用Android应用架构:从建项目开始
- 数据算法之二叉树删除(BinaryTreeL Remove)的Java实现
- access_token is invalid or not latest hint
- cesium 获取当前经纬度和视角还有当前level层级
- pgpool-II的master-slave模式的分析
- 细梳腾讯帝国幼年艰辛,竟几度面临夭折
- 阿里云API请求签名失败的解决办法
- Dubbo+zookeeper
- Maven 仓库 .lastUpdated文件
- 9. docker——DockerFile案例
- android 按键用户点击事件,Android按键事件处理过程详解
- Centos7 安装部署apache。简单易上手
- DebEX 现在支持 Linux 5.0 内核 和 Budgie Desktop 10.4
热门文章
- 《程序员必读之软件架构》 [豆瓣评分 7.30] 强调实践、注重实效、轻量级、面向开发者的软件架构指南...
- 补货提醒excel整理
- 计算机史话pdf,学生应知科技知识计算机史话.pdf
- 【PAPR抑制算法】对IPTS,OPTS,CE,PMCE等常见的PAPR抑制算法进行仿真分析
- elk插件x-pack安装以及破解
- 继续教育-电商美工主图和海报制作 试题及答案
- ERP-库存与存货-仓储部原材料出库
- 手把手教你如何玩转Java基础面试题
- 解决谷歌浏览器http链接自动跳转到https的问题
- 基于C#的中望CAD二次开发学习笔记(1)环境测试