cygwin – 如何在windows上改善babun的zsh加载时间?
我喜欢ZSH
shell及其主题,但它非常慢.加载需要7到10秒.我也将它用作VS Code中的集成终端,即使加载速度很慢.这是我的.zshrc文件的副本.
# Path to your oh-my-zsh installation. export ZSH=$HOME/.oh-my-zsh export PS1="[%* - %D] %d %% " # Set name of the theme to load. # Look in ~/.oh-my-zsh/themes/ # Optionally,if you set this to "random",it'll load a random theme each # time that oh-my-zsh is loaded. ZSH_THEME="agnoster" DEFAULT_USER=13000 # Uncomment the following line to use case-sensitive completion. # CASE_SENSITIVE="true" # Uncomment the following line to use hyphen-insensitive completion. Case # sensitive completion must be off. _ and - will be interchangeable. # HYPHEN_INSENSITIVE="true" # Uncomment the following line to disable bi-weekly auto-update checks. # DISABLE_AUTO_UPDATE="true" # Uncomment the following line to change how often to auto-update (in days). # export UPDATE_ZSH_DAYS=13 # Uncomment the following line to disable colors in ls. # DISABLE_LS_COLORS="true" # Uncomment the following line to disable auto-setting terminal title. # DISABLE_AUTO_TITLE="true" # Uncomment the following line to enable command auto-correction. # ENABLE_CORRECTION="true" # Uncomment the following line to display red dots whilst waiting for completion. # COMPLETION_WAITING_DOTS="true" # Uncomment the following line if you want to disable marking untracked files # under VCS as dirty. This makes repository status check for large repositories # much,much faster. # DISABLE_UNTRACKED_FILES_DIRTY="true" # Uncomment the following line if you want to change the command execution time # stamp shown in the history command output. # The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" # HIST_STAMPS="mm/dd/yyyy" # Would you like to use another custom folder than $ZSH/custom? # ZSH_CUSTOM=/path/to/new-custom-folder # Which plugins would you like to load? (plugins can be found in ~/.oh-my- zsh/plugins/*) # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely,as too many plugins slow down shell startup. plugins=(git) # User configuration export PATH=$HOME/bin:/usr/local/bin:$PATH # export MANPATH="/usr/local/man:$MANPATH" source $ZSH/oh-my-zsh.sh # You may need to manually set your language environment # export LANG=en_US.UTF-8 # Preferred editor for local and remote sessions # if [[ -n $SSH_CONNECTION ]]; then # export EDITOR='vim' # else # export EDITOR='mvim' # fi # Compilation flags # export ARCHFLAGS="-arch x86_64" # ssh # export SSH_KEY_PATH="~/.ssh/dsa_id" # Set personal aliases,overriding those provided by oh-my-zsh libs,# plugins,and themes. Aliases can be placed here,though oh-my-zsh # users are encouraged to define aliases within the ZSH_CUSTOM folder. # For a full list of active aliases,run `alias`. # # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" prompt_dir() { prompt_segment blue black "${PWD##*/}" } 编辑::我在我的cygwin目录中找到了2个oh-my-zsh.sh文件,所以这两个都是. 第一 # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh fi # Initializes Oh My Zsh # add a function path fpath=($ZSH/functions $ZSH/completions $fpath) # Load all stock functions (from $fpath files) called below. autoload -U compaudit compinit : ${ZSH_DISABLE_COMPFIX:=true} # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists,or else we will use the default custom/ if [[ -z "$ZSH_CUSTOM" ]]; then ZSH_CUSTOM="$ZSH/custom" fi # Set ZSH_CACHE_DIR to the path where cache files should be created # or else we will use the default cache/ if [[ -z "$ZSH_CACHE_DIR" ]]; then ZSH_CACHE_DIR="$ZSH/cache" fi # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore for config_file ($ZSH/lib/*.zsh); do custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}" [ -f "${custom_config_file}" ] && config_file=${custom_config_file} source $config_file done is_plugin() { local base_dir=$1 local name=$2 test -f $base_dir/plugins/$name/$name.plugin.zsh || test -f $base_dir/plugins/$name/_$name } # Add all defined plugins to fpath. This must be done # before running compinit. for plugin ($plugins); do if is_plugin $ZSH_CUSTOM $plugin; then fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) elif is_plugin $ZSH $plugin; then fpath=($ZSH/plugins/$plugin $fpath) fi done # Figure out the SHORT hostname if [[ "$OSTYPE" = darwin* ]]; then # macOS's $HOST changes with dhcp,etc. Use ComputerName if possible. SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/} else SHORT_HOST=${HOST/.*/} fi # Save the location of the current completion dump file. if [ -z "$ZSH_COMPDUMP" ]; then ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}" fi if [[ $ZSH_DISABLE_COMPFIX != true ]]; then # If completion insecurities exist,warn the user without enabling completions. if ! compaudit &>/dev/null; then # This function resides in the "lib/compfix.zsh" script sourced above. handle_completion_insecurities # Else,enable and cache completions to the desired file. else compinit -d "${ZSH_COMPDUMP}" fi else compinit -i -d "${ZSH_COMPDUMP}" fi # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH/plugins/$plugin/$plugin.plugin.zsh fi done # Load all of your custom configurations from custom/ for config_file ($ZSH_CUSTOM/*.zsh(N)); do source $config_file done unset config_file # Load the theme if [ "$ZSH_THEME" = "random" ]; then themes=($ZSH/themes/*zsh-theme) N=${#themes[@]} ((N=(RANDOM%N)+1)) RANDOM_THEME=${themes[$N]} source "$RANDOM_THEME" echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." else if [ ! "$ZSH_THEME" = "" ]; then if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" else source "$ZSH/themes/$ZSH_THEME.zsh-theme" fi fi fi 第二个是 # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh fi # Initializes Oh My Zsh # add a function path fpath=($ZSH/functions $ZSH/completions $fpath) # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists,or else we will use the default custom/ if [[ -z "$ZSH_CUSTOM" ]]; then ZSH_CUSTOM="$ZSH/custom" fi # Set ZSH_CACHE_DIR to the path where cache files should be created # or else we will use the default cache/ if [[ -z "$ZSH_CACHE_DIR" ]]; then ZSH_CACHE_DIR="$ZSH/cache/" fi # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore for config_file ($ZSH/lib/*.zsh); do custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}" [ -f "${custom_config_file}" ] && config_file=${custom_config_file} source $config_file done # Load all of your custom configurations from custom/ for config_file ($ZSH_CUSTOM/*.zsh(N)); do source $config_file done unset config_file is_plugin() { local base_dir=$1 local name=$2 test -f $base_dir/plugins/$name/$name.plugin.zsh || test -f $base_dir/plugins/$name/_$name } # Add all defined plugins to fpath. This must be done # before running compinit. for plugin ($plugins); do if is_plugin $ZSH_CUSTOM $plugin; then fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) elif is_plugin $ZSH $plugin; then fpath=($ZSH/plugins/$plugin $fpath) fi done # Figure out the SHORT hostname if [[ "$OSTYPE" = darwin* ]]; then # OS X's $HOST changes with dhcp,etc. Use ComputerName if possible. SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/} else SHORT_HOST=${HOST/.*/} fi # Save the location of the current completion dump file. if [ -z "$ZSH_COMPDUMP" ]; then ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}" fi # Load and run compinit autoload -U compinit compinit -i -d "${ZSH_COMPDUMP}" # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH/plugins/$plugin/$plugin.plugin.zsh fi done # Load the theme if [ "$ZSH_THEME" = "random" ]; then themes=($ZSH/themes/*zsh-theme) N=${#themes[@]} ((N=(RANDOM%N)+1)) RANDOM_THEME=${themes[$N]} source "$RANDOM_THEME" echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." else if [ ! "$ZSH_THEME" = "" ]; then if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" else source "$ZSH/themes/$ZSH_THEME.zsh-theme" fi fi fi 不要介意长篇帖子:D. 解决方法
我在我的Windows 10机器上安装了babun.
禁用bash自动完成作业会略微改善我的加载时间.我将所有文件重命名为“bash_completion.d”目录中的“.bk”扩展名. { ~ } ? ls -ltr /etc/bash_completion.d ~ total 68 -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 998 Jun 23 2015 vim-completion.bk -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 44924 Jun 23 2015 svn.bk -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 1200 Jun 23 2015 gvim-completion.bk -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 2609 Jun 23 2015 gsettings.bk -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 1356 Jun 23 2015 gresource.bk -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 935 Jun 23 2015 gdbus.bk -rwxrwx---+ 1 m.ortiz.montealegre Domain Users 1389 Jun 23 2015 gapplication.bk 另外调试是一个很好的选择,有了strace来看看Cygwin加载时发生了什么,请查看这个question. 编辑: 关于Babun调整 你可以用来检查你的安装的工具记录在babun网站上,使用babun check也许这提供了一些线索: { ~ } ? babun check ~ Executing babun check Prompt speed [SLOW] Hint: your prompt is very slow. Check the installed 'BLODA' software. Connection check [OK] Update check [OK] Cygwin check [OK] 我不知道你是否在你的babun安装中进行了一些调整,请检查你的?/ .babunrc文件并确认你已经禁用了自动更新和启动检查(不要启用它们): # JVM options export JAVA_OPTS="-Xms128m -Xmx256m" # Modify these lines to set your locale export LANG="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" export LC_ALL="en_US.UTF-8" # Uncomment these lines to the set your machine's default locale (and comment out the UTF-8 ones) # export LANG=$(locale -uU) # export LC_CTYPE=$(locale -uU) # export LC_ALL=$(locale -uU) # Uncomment this to disable daily auto-update & proxy checks on startup (not recommended!) # export DISABLE_CHECK_ON_STARTUP="true" # Uncomment to increase/decrease the check connection timeout # export CHECK_TIMEOUT_IN_SECS=4 # Uncomment this lines to set up your proxy # export http_proxy=http://user:password@server:port # export https_proxy=$http_proxy # export ftp_proxy=$http_proxy # export no_proxy=localhost 关于Cygwin 如果您对Strace的调试不满意,可以为Cygwin探索一些调整here和here. 我认为你应该抽象出“babun”的东西,不要忘记嵌入的Cygwin,我认为你真正想要加速的是,babun核心是一个Cygwin实现,有一些变化:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2012-r2 – WSUS和推出Win 10 1703更新和Wi
- 变量 – Windows批处理文件:什么是变量扩展,EnableDelayed
- Serv-u本地权限提升漏洞的终极防御
- windows-server-2008 – ADFS 2.0场 – 如何执行立即同步
- VirtualBox 收缩 vdi镜像文件
- 防火墙 – Skype在一个企业 – 您的看法是什么?
- directx – 音频/视频捕获在Windows 8 Metro App中
- audio – 如何将QBASIC PLAY命令转换为更现代的东西?
- windows-server-2008-r2 – Exchange如何与DC集成
- windows-phone-7 – 我们可以在Microsoft App Store上使用学