首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >微信程序员推荐的后台开发环境和常用小工具

微信程序员推荐的后台开发环境和常用小工具

作者头像
腾讯云开发者
发布2025-07-31 08:55:48
发布2025-07-31 08:55:48
2350
举报

本文详细分享了作者的后台开发环境配置方案及常用效率工具,旨在帮助读者搭建个性化、高效的开发工作流。文章从终端环境配置切入,逐步介绍了开发环境各组件的高度定制化方案,并推荐了多个提升开发效率的实用工具。

关注腾讯云开发者,一手技术干货提前解锁👇

鹅厂程序员面对面直播继续,每周将邀请鹅厂明星技术大咖讲解 AI 时代下的“程序员护城河”。更有蛇年公仔等精美周边等你来拿,记得提前预约直播~👇

01

终端配置

有的人喜欢用vscode,有的人喜欢用vim,我个人用vim习惯了,所以通过Windows terminal连接开发机,不使用weterm的原因是感觉weterm的侧边栏太多了,不够简洁。

首先本地安装wsl2,Linux发行版使用Arch WSL,使用Arch的一个原因是它可以滚动更新,使用最新的软件包,Ubuntu每隔2年发布一个版本,升级太费事了。字体在 https://www.nerdfonts.com/font-downloads 下载的Source Code Pro,可以让终端显示一些文件夹符号。 Windows terminal主体配色。

代码语言:javascript
复制
{
            "background": "#1E1E1E",
            "black": "#000000",
            "blue": "#2472C8",
            "brightBlack": "#666666",
            "brightBlue": "#3B8EEA",
            "brightCyan": "#29B8DB",
            "brightGreen": "#23D18B",
            "brightPurple": "#D670D6",
            "brightRed": "#F14C4C",
            "brightWhite": "#E5E5E5",
            "brightYellow": "#F5F543",
            "cursorColor": "#FFFFFF",
            "cyan": "#11A8CD",
            "foreground": "#BBBBBB",
            "green": "#0DBC79",
            "name": "Dark (Visual Studio)",
            "purple": "#BC3FBC",
            "red": "#CD3131",
            "selectionBackground": "#FFFFFF",
            "white": "#E5E5E5",
            "yellow": "#E5E510"
}

然后是连接开发机,Windows terminal的默认会话改成arch,在.ssh/config里面增加配置。

代码语言:javascript
复制
Host devcloud
     HostName x.xxx.xx.xxxx
     xxxxx 123456

Host mnet
     HostName xxxxxx.com
     xxxxx 123456
     ControlMaster auto
     ControlPath ~/.ssh/master-%r@%h:%p
     HostKeyAlgorithms=+ssh-rsa

使用私钥连接开发机,装完之后直接卸载tjj,tjj会导致chsh改默认shell失败,我的默认shell是zsh。连接跳板机的配置里面ControlMaster和ControlPath会让ssh共享链接,下次连接不用输pin+token,我是开了一个screen,连接之后就放到后台,就可以关闭tab了,后面有需要再连接跳板机。

在本地wsl里面alias dgo和qlst,就可以忽略跳板机存在了。

代码语言:javascript
复制
cat `which dgo`
#ssh mnet -t "go $1" 2> /dev/null
cat `which qlst`
#ssh mnet -t "qlst $1" 2> /dev/null

02

zsh+tmux

使用oh my zsh,个人配置如下

代码语言:javascript
复制
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="xxxx"

plugins=(
    git
    docker
    zsh-autosuggestions
    autojump
    zsh-syntax-highlighting
    golang
    rust
)

source $ZSH/oh-my-zsh.sh

source ~/.profile_comm
alias ls="eza --color=always --long --icons=always --time-style='+%Y-%m-%d %H:%M'"
alias lt='ls --tree'

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
export PATH=$HOME/.local/git/bin:$HOME/.local/node/bin:$HOME/.local/python/bin:$HOME/.local/bin:$HOME/.go/bin:/usr/local/go/bin/:$HOME/.cargo/bin:$HOME/.local/tools_bin/patchbuild:$HOME/.local/node/bin:$PATH:$HOME/.ft
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export RUNEWIDTH_EASTASIAN=0

alias f='files_list=$(fzf -m --layout reverse --height=80%  --border=bold --preview "bat --style=numbers --color=always --line-range :500 {}") && if command -v floaterm &> /dev/null;then floaterm $files_list;else nvim $files_list;fi'

alias tcc="patchbuild build -m64 xxxxxxxxxxxxxxxxxxxxxxx --include-commit  --profile=debug --skip-ipath"
alias tmake="patchbuild build -m64 xxxxxxxxxxxxxxxxxxxxxxx  --download-genfiles --compile-command-query='--merge' --include-commit"
alias dcc="patchbuild docker -m64 xxxxxxxxxxxxxxxxxxxxxxx "
alias s='cat ~/.notes.txt | grep -i'
alias a='vim ~/.notes.txt +9999'
alias qq='cd ~/xxxxxx'
alias h='cd ~'
alias t='cd ~/tmp'
fmt_date() { date '+%Y-%m-%d %H:%M:%S' -d @"$@" }
fmt_stamp() { date  +%s --utc -d "$*" }

# vim(){ if command -v floaterm &> /dev/null;then floaterm $@;else nvim $@; fi }

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

[ -z "$TMUX"  ] && [ -z "$DISTROBOX_ENTER_PATH" ] && ! [ -z "$SSH_TTY" ] && { tmux attach || exec tmux new-session && exit; }

PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'

alias cat='bat -pp'
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
source $HOME/.local/fzf-git.sh/fzf-git.sh

function chpwd() {
    export MODULE=$(basename $(pwd))
}

chpwd

里面比较有用的是zsh-autosuggestions、zsh-syntax-highlighting、autojump,安装方法可以看它的GitHub文档。前面2个可以提供终端命令高亮和提示补全,可以少敲很多。autojump可以方便的切换目录,比如进入过一个目录,只记得大概的名字,就可以通过j+关键字直接跳到这个目录。

里面的[ -z "

代码语言:javascript
复制
# 0 is too far from ` ;)
set -g base-index 1

# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

# set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  setw -g mode-keys vi
#setw -g monitor-activity on

setw -g mouse on

set -s escape-time 50

bind c run-shell 'tmux new-window "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind s run-shell 'tmux split-window -v "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind v run-shell 'tmux split-window -h "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'

# Shift arrow to switch windows
bind -n S-Left select-pane -L
bind -n S-Right select-pane -R
bind -n S-Up select-pane -U
bind -n S-Down select-pane -D

set -g default-terminal "screen-256color"

# THEME
set -g status off
set -g status-bg colour234
set -g status-fg white
# set -g mode-style bg=white,fg=black
set -g status-interval 60
set -g status-left-length 30
set -g status-left '#[fg=green](#S) #(whoami)'
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'

里面的run-shell是为了保持在当前的目录,配合zsh里面的PS1="TMUX" ] && tmux setenv TMUXPWD_

zsh主题:

代码语言:javascript
复制
PROMPT='%{$fg[cyan]%}%~%{$reset_color%} $(_omz_git_prompt_info)
'
PROMPT+=" %(?:%{$fg_bold[green]%}%1{➜%} :%{$fg_bold[red]%}%1{➜%} )%{$fg[cyan]%}%{$reset_color%}"

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%1{✗%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"

开头有个符号是为了让我区分当前是在本地arch还是开发机,符号来自于https://github.com/eza-community/eza/blob/main/src/output/icons.rs

03

neovim

https://github.com/lasorda/vimrc 使用coc来管理各个lsp插件,使用coc的好处就是如果需要临时写个其他语言,找一下对应的插件CocInstall一下就行了。 写c++主要依赖clangd,使用到的.clang-format .clang-tidy .clangd在附件里面,基本上写完没有error和warning,编译都能过,写完手动根据.clang-format格式化一下 里面的插件已经有python、go、rust、sh了,日常使用基本没啥障碍。

.vim/tasks.ini 里面的配置和vim插件配合使用,日常要写个测试代码比较方便。

代码语言:javascript
复制
[run]
command="$(VIM_FILEPATH)"
command:cpp=c++ -std=c++17 "$(VIM_FILEPATH)" -o "$(VIM_PATHNOEXT)" -lfmt -lpthread && "$(VIM_PATHNOEXT)" && rm -f "$(VIM_PATHNOEXT)"
command:c=cc "$(VIM_FILEPATH)" -o "$(VIM_PATHNOEXT)" -lfmt -lgtest -lleveldb -lhiredis -lco && "$(VIM_PATHNOEXT)" && rm -f "$(VIM_PATHNOEXT)"
command:go=go build -o "$(VIM_PATHNOEXT)" "$(VIM_FILEPATH)" && "$(VIM_PATHNOEXT)" && rm -f "$(VIM_PATHNOEXT)"
command:python=python3 "$(VIM_FILENAME)"
command:sh=chmod +x $(VIM_FILENAME) && ./$(VIM_FILENAME)
output=terminal
cwd=$(VIM_FILEDIR)
save=2

04

一些好用的小工具

protobuf-language-server

https://github.com/lasorda/protobuf-language-server proto文件跳转,cpp直接跳proto定义位置(自动生成的pb.h下载到了本地,先跳.h,.h再跳proto),有代码格式化和补全。

starpls

https://github.com/withered-magic/starpls BUILD文件跳转和查看大纲,个人认为十分方便的工具。

bat

https://github.com/sharkdp/bat 替换bat,个人配置如下.config/bat/config,zsh里面cat和man都替换成了bat,颜色更丰富,重点更突出。

代码语言:javascript
复制
--theme="Visual Studio Dark+"
--map-syntax "*.conf:INI"
--map-syntax "BUILD*:Python"
--map-syntax "*.list:JSON"

fzf

https://github.com/junegunn/fzf 用过的都说好。

delta

https://github.com/dandavison/delta 本地看git diff更直观。

dust

看硬盘占用,很直观。

eza

替换ls的工具,提供的颜色和符号比ls更多,更加直观。

procs

替换ps,用的不多。

ripgrep

替换grep,很好用。

tlrc

tldr的rust版本,不会用的命令就tldr 一下。

-End-

原创作者|潘志豪

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01
  • 02
  • 03
  • 04
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档