Mac OS 开发环境 Terminal 配置

jzhongming · · 969 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
Mac OS 开发环境 Terminal 配置 --- [TOC] ### Terminal 主题选择 Mac OS 内置主题已经很不错很好看,如果不满意系统自带主题,可以自定义配置。这里推荐下面的配置文件,下载下来,直接导入就好。 [https://github.com/chriskempson/tomorrow-theme](https://github.com/chriskempson/tomorrow-theme) ### Vim 配置.vimrc ``` $ touch ~/.vimrc ``` 配置内容如下: ``` syntax on " 自动语法高亮 "colorscheme molokai " 设定配色方案 "set nocompatible " 关闭 vi 兼容模式 set number " 显示行号 "set cursorline " 突出显示当前行 set ruler " 打开状态栏标尺 set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4 set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格 set tabstop=4 " 设定 tab 长度为 4 set nobackup " 覆盖文件时不备份 set autochdir " 自动切换当前目录为当前文件所在的目录 set nocompatible " be iMproved, required filetype off " required " 以下内容配置 vim 中粘帖代码重复缩进问题 if &term =~ "xterm.*" let &t_ti = &t_ti . "\e[?2004h" let &t_te = "\e[?2004l" . &t_te function XTermPasteBegin(ret) set pastetoggle=<Esc>[201~ set paste return a:ret endfunction map <expr> <Esc>[200~ XTermPasteBegin("i") imap <expr> <Esc>[200~ XTermPasteBegin("") cmap <Esc>[200~ <nop> cmap <Esc>[201~ <nop> endif ``` ### Tmux 神器 Tmux 安装 ``` brew install tmux ``` Tmux 配置 ``` $ vim ~/.tmux.conf # Sets prefix globally # Reload tmux.conf bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded" # improve colors set-option -g default-terminal "screen-256color" # Set prompt behavior like emacs set-option -g status-keys "emacs" # window status setw -g window-status-format " #F#I:#W#F " setw -g window-status-current-format " #F#I:#W#F " setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " setw -g window-status-current-bg colour0 setw -g window-status-current-fg colour11 setw -g window-status-current-attr dim setw -g window-status-bg green setw -g window-status-fg black setw -g window-status-attr reverse # panal theme set -g pane-border-bg colour0 set -g pane-border-fg colour236 set -g pane-active-border-bg colour0 set -g pane-active-border-fg colour55 # Show session name in the status left, empty status right set -g status-position bottom set -g status-bg colour0 set -g status-fg colour137 set -g status-attr dim set -g status-left-length 50 set -g status-left '#[fg=magenta]#[fg=colour233,bg=colour245,bold] %H:%M:%S #[default]' set -g status-right-length 50 set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m/%Y' setw -g window-status-current-fg colour81 setw -g window-status-current-bg colour56 setw -g window-status-current-attr bold setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' setw -g window-status-fg colour138 setw -g window-status-bg colour235 setw -g window-status-attr none setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' setw -g window-status-bell-attr bold setw -g window-status-bell-fg colour255 setw -g window-status-bell-bg colour1 # More intuitive panes split and remember current path bind-key - split-window -v -c '#{pane_current_path}' bind-key \ split-window -h -c '#{pane_current_path}' # Smart pane switching with awareness of vim splits # See: https://github.com/christoomey/vim-tmux-navigator is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?x?)(diff)?$"' bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" # Resize panes using shift key bind -n S-Left resize-pane -L 2 bind -n S-Right resize-pane -R 2 bind -n S-Down resize-pane -D 1 bind -n S-Up resize-pane -U 1 # Remember current patch when creating new window bind c new-window -c '#{pane_current_path}' # Set base-index to 1 (useful for switching between windows) set-option -g base-index 1 set-option -g renumber-windows on # Set break-pane and detach (-d) while keeping focus on current window bind-key b break-pane -d # Easily go to tmux choose-tree to navigate between sessions bind-key C-j choose-tree # enable mouse option set-option -g mouse on # open copy with vi mode setw -g mode-keys vi # buffer缓存复制到Mac系统粘贴板 bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy" # Mac系统粘贴板内容复制到会话 bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - \; paste-buffer -d" # 绑定y键为复制选中文本到Mac系统粘贴板 bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy' # 鼠标拖动选中文本,并复制到Mac系统粘贴板 bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy" ``` ### Tmux 操作 下面所有的prefix均代表CTRL+b Session相关操作 | 操作 | 快捷键 | | ----------------- | -------- | | 查看/切换session | prefix s | | 离开Session | prefix d | | 重命名当前Session | prefix $ | Window相关操作 | 操作 | 快捷键 | | ------------------ | ------------- | | 新建窗口 | prefix c | | 切换到上一个活动的窗口 | prefix space | | 关闭一个窗口 | prefix & | | 使用窗口号切 | prefix 窗口号 | Pane相关操作 | 操作 | 快捷键 | | ------------------ | --------- | | 切换到下一个窗格 | prefix o | | 查看所有窗格的编号 | prefix q | | 垂直拆分出一个新窗格 | prefix “ | | 水平拆分出一个新窗格 | prefix % | | 暂时把一个窗体放到最大 | prefix z |

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

969 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传