Scala开发环境选型(2): vim + NERDTree + scala-dist + tmux

简介:

背景介绍

在之前那篇Scala开发环境选型里,使用的是Sublime和一个Ensime插件,抛弃了IDE。尝试了一段时间觉得在没有IDE的情况下也蛮习惯的,所以接下来转移到服务器上,在vim环境编码。还是延续sublime+sbt的思路,在vim下选择了一个树状结构的插件NERDTree,用scala-dist进行scala的语法高亮,最后采用tmux进行分屏,让sbt的~compile、run和console能和vim共存在一个屏幕上,并且可以打开dstat,对cpu,内存等进行实时的监控。搭建起来之后的界面如下图。由于我的centos和SecureCRT可能存在一些编码问题,分界线会有些不对称。左侧是vim自己的分屏,右侧+左侧vim是使用tmux对整个连接session的多屏处理。


Scala-dist

使用scala-dist在vim内对scala实现语法高亮,在~/.vim下创建几个目录,将相关.vim文件放置在目录内。执行以下命令即可:

mkdir -p ~/.vim/{ftdetect,indent,syntax} && for d in ftdetect indent syntax ; do curl -o ~/.vim/$d/scala.vim https://raw.github.com/scala/scala-dist/master/tool-support/src/vim/$d/scala.vim; done

NERDTree

NERDTree是vim最流行的插件之一,下载包并将相关文件夹和文件放置到~/.vim下即可。在~/.vimrc内加入

nnoremap <silent> <F5> :NERDTree<CR>
可以在vim下输入F5就打开NERDTree。o 为 打开目录/打开文件,i 为在新tab打开文件,P 为 回到根目录,? 为查看NERDTree的所有快捷键。使用

:set mouse=a
还可以支持鼠标点击选择目录的功能


tmux

tmux网上资料很多,在centos上安装的话要先安装

yum install libevent-devel ncurses-devel

tmux屏幕之间的切换会比较类似vim,所以有人会把tmux的ctrl+b快捷键设置为ctrl+w,我的配置里设置的是ctrl+a

下面是我的~/.tmux.conf的配置,从配置中可以看到tmux常用的操作

#-- base settings --#
set -g default-terminal "screen-256color"
set -g display-time 3000
set -g escape-time 0
set -g history-limit 65535
set -g base-index 1
set -g pane-base-index 1

# enable mouse-select
set -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

#-- bindkeys --#
# prefix key (Ctrl+a)
set -g prefix ^a
unbind ^b
bind a send-prefix

# split window
unbind '"'
bind - splitw -v # vertical split (prefix -)
unbind %
bind | splitw -h # horizontal split (prefix |)

# select pane
bind k selectp -U # above (prefix k)
bind j selectp -D # below (prefix j)
bind h selectp -L # left (prefix h)
bind l selectp -R # right (prefix l)

# resize pane
bind -r ^k resizep -U 10 # upward (prefix Ctrl+k)
bind -r ^j resizep -D 10 # downward (prefix Ctrl+j)
bind -r ^h resizep -L 10 # to the left (prefix Ctrl+h)
bind -r ^l resizep -R 10 # to the right (prefix Ctrl+l)

# swap pane
bind ^u swapp -U # swap with the previous pane (prefix Ctrl+u)
bind ^d swapp -D # swap with the next pane (prefix Ctrl+d)

# misc
bind e lastp  # select the last pane (prefix e)
bind ^e last  # select the last window (prefix Ctrl+e)
bind q killp  # kill pane (prefix q)
bind ^q killw # kill window (prefix Ctrl+q)

# copy mode
bind Escape copy-mode             # enter copy mode (prefix Escape)
bind ^p pasteb                    # paste buffer (prefix Ctrl+p)
bind -t vi-copy v begin-selection # select (v)
bind -t vi-copy y copy-selection  # copy (y)

# app
bind ! splitw htop                                     # htop (prefix !)
bind m command-prompt "splitw 'exec man %%'"           # man (prefix m)
bind @ command-prompt "splitw 'exec perldoc -t -f %%'" # perl func (prefix @)
bind * command-prompt "splitw 'exec perldoc -t -v %%'" # perl var (prefix *)
bind % command-prompt "splitw 'exec perldoc -t %%'"    # perl doc (prefix %)
bind / command-prompt "splitw 'exec ri %%'"            # ruby doc (prefix /)

# reload config (prefix r)
bind r source ~/.tmux.conf \; display "Configuration reloaded!"

#-- statusbar --#
set -g status-utf8 on
set -g status-interval 1
set -g status-keys vi

setw -g mode-keys vi
setw -g automatic-rename off

#-- colorscheme --#
# see also: https://github.com/daethorian/conf-tmux/blob/master/colors/zenburn.conf

# modes
setw -g clock-mode-colour colour223
setw -g mode-attr bold
setw -g mode-fg grey #colour223
setw -g mode-bg grey #colour235

# panes
set -g pane-border-bg green
set -g pane-border-fg green
set -g pane-active-border-bg green
set -g pane-active-border-fg green

# statusbar
set -g status-justify centre
set -g status-bg grey
set -g status-fg grey
set -g status-attr dim
set -g status-left "#[default]>> #[fg=colour187]#S #[default] #[fg-colour187]w#I.p#P#[default]"
set -g status-left-attr bright
set -g status-left-length 20
set -g status-right "#[fg=colour174]#(/home/work/local) #[default] #[fg=colour174]#(cut -d ' ' -f 1-3 /proc/loadavg)"
set -g status-right-attr bright
set -g status-right-length 80

setw -g window-status-current-fg colour223
setw -g window-status-current-bg colour237
setw -g window-status-current-attr bold
setw -g window-status-current-format "#I:#W#F"

#setw -g window-status-alert-attr bold
#setw -g window-status-alert-fg colour255
#setw -g window-status-alert-bg colour160

# messages
set -g message-attr bold
set -g message-fg colour223
set -g message-bg bold

(全文完)



目录
相关文章
|
7月前
|
Linux 开发工具 C语言
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
|
Ubuntu Linux 开发工具
嵌入式Linux开发环境搭建之四----Vim的安装
嵌入式Linux开发环境搭建之四----Vim的安装
95 0
|
Linux 开发工具
Linux之tmux和vim
Linux之tmux和vim
74 0
|
数据可视化 Linux 开发工具
Linux基础开发环境,yum 与 vim。
✅<1>主页:我的代码爱吃辣 📃<2>知识讲解:Linux 🔥<3>创作者:我的代码爱吃辣 💬<4>前言:Linux必不可少的基础开发环境使用。
|
分布式计算 IDE Ubuntu
Scala开发环境搭建
Scala开发环境搭建
|
分布式计算 Java Hadoop
IntelliJ-IDEA-Mavne-Scala-Spark开发环境搭建
IntelliJ-IDEA-Mavne-Scala-Spark开发环境搭建
|
IDE 安全 前端开发
Win11系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境
众神殿内,依次坐着Editplus、Atom、Sublime、Vscode、JetBrains家族、Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一位睥睨众生的王者,那就是被称之为编辑器之神的Vim,作为一个有着30余年历史的老牌神器,没有任何编辑器可以和它媲美,其时江湖有云:神编Vim不会玩,纵称大神也枉然。Vim在 1976 年发布,奉行 Unix 传统的“Do one thing and do it well”哲学,每个程序只做一件事但求做到最好,通过程序之间的配合得到强大的功能,其两种模式(Normal/Insert) 的玄妙变换,幻
Win11系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境
|
Ubuntu Linux 开发工具
Linux的各种复制粘贴 - VIM、tmux、和终端之间的复制粘贴
Linux的各种复制粘贴 - VIM、tmux、和终端之间的复制粘贴
2319 0
|
Java Scala 开发者
Windows 搭建S cala 开发环境|学习笔记
快速学习 Windows 搭建 Scala 开发环境。
206 0
Windows 搭建S cala 开发环境|学习笔记
|
消息中间件 Java Linux
Linux 下搭建 Scala 开发环境|学习笔记
快速学习 Linux 下搭建 Scala 开发环境。
472 0
Linux 下搭建 Scala 开发环境|学习笔记