zsh安装自动补全插件incr

使用zsh的自动补全功能,首先满足下面的条件:

  1. 你用 oh-my-zsh 来协助你完成 zsh 的配置

  2. 你开启了 zsh

  3. 你下载了这个 插件

  4. 你把插件执行shell 写到了你的 .zshrc 配置文件中

上面说到的 1,2 在之前的博文里面早,最上面其实我贴出来如何开启 zsh 的链接.(如果你没有鼠标的话,肯定点不开)

今天就是分享下 3,4 提到的内容:

如何下载这个插件:

官网: http://mimosa-pudica.net/zsh-incremental.html

点开后你的第一反应应该是一个F开头的单词蹦出来,我当时也是.

我下载的版本是 incr-0.2.zsh

如果某一天这个官网由于种种原因你访问不到了…所以我把 incr-0.2.zsh 的脚本贴出来一份就当备份

# Incremental completion for zsh
# by y.fujii <y-fujii at mimosa-pudica.net>, public domain


autoload -U compinit
zle -N self-insert self-insert-incr
zle -N vi-cmd-mode-incr
zle -N vi-backward-delete-char-incr
zle -N backward-delete-char-incr
zle -N expand-or-complete-prefix-incr
compinit

bindkey -M viins '^[' vi-cmd-mode-incr
bindkey -M viins '^h' vi-backward-delete-char-incr
bindkey -M viins '^?' vi-backward-delete-char-incr
bindkey -M viins '^i' expand-or-complete-prefix-incr
bindkey -M emacs '^h' backward-delete-char-incr
bindkey -M emacs '^?' backward-delete-char-incr
bindkey -M emacs '^i' expand-or-complete-prefix-incr

unsetopt automenu
compdef -d scp
compdef -d tar
compdef -d make
compdef -d java
compdef -d svn
compdef -d cvs

# TODO:
#     cp dir/

now_predict=0

function limit-completion
{
	if ((compstate[nmatches] <= 1)); then
		zle -M ""
	elif ((compstate[list_lines] > 6)); then
		compstate[list]=""
		zle -M "too many matches."
	fi
}

function correct-prediction
{
	if ((now_predict == 1)); then
		if [[ "$BUFFER" != "$buffer_prd" ]] || ((CURSOR != cursor_org)); then
			now_predict=0
		fi
	fi
}

function remove-prediction
{
	if ((now_predict == 1)); then
		BUFFER="$buffer_org"
		now_predict=0
	fi
}

function show-prediction
{
	# assert(now_predict == 0)
	if
		((PENDING == 0)) &&
		((CURSOR > 1)) &&
		[[ "$PREBUFFER" == "" ]] &&
		[[ "$BUFFER[CURSOR]" != " " ]]
	then
		cursor_org="$CURSOR"
		buffer_org="$BUFFER"
		comppostfuncs=(limit-completion)
		zle complete-word
		cursor_prd="$CURSOR"
		buffer_prd="$BUFFER"
		if [[ "$buffer_org[1,cursor_org]" == "$buffer_prd[1,cursor_org]" ]]; then
			CURSOR="$cursor_org"
			if [[ "$buffer_org" != "$buffer_prd" ]] || ((cursor_org != cursor_prd)); then
				now_predict=1
			fi
		else
			BUFFER="$buffer_org"
			CURSOR="$cursor_org"
		fi
		echo -n "\e[32m"
	else
		zle -M ""
	fi
}

function preexec
{
	echo -n "\e[39m"
}

function vi-cmd-mode-incr
{
	correct-prediction
	remove-prediction
	zle vi-cmd-mode
}

function self-insert-incr
{
	correct-prediction
	remove-prediction
	if zle .self-insert; then
		show-prediction
	fi
}

function vi-backward-delete-char-incr
{
	correct-prediction
	remove-prediction
	if zle vi-backward-delete-char; then
		show-prediction
	fi
}

function backward-delete-char-incr
{
	correct-prediction
	remove-prediction
	if zle backward-delete-char; then
		show-prediction
	fi
}

function expand-or-complete-prefix-incr
{
	correct-prediction
	if ((now_predict == 1)); then
		CURSOR="$cursor_prd"
		now_predict=0
		comppostfuncs=(limit-completion)
		zle list-choices
	else
		remove-prediction
		zle expand-or-complete-prefix
	fi
}

如何使用?

首先去你官网或者从上面把这个 shell 文件内容copy 下来,然后放到一个指定的目录下.
该放到什么目录下,这个看你的个人爱好,我推荐你放在 oh-my-zsh 目录的插件目录下

➜  /Users/zhangzhi  >.oh-my-zsh/plugins/

然后新建一个 incr 目录,最后在 incr 目录下创建一个shell 文档,把你copy 的内容放进去.

上面的操作有几个注意点: 创建文件夹用sudo权限.

创建完的 shell 文档要给赋777权限.

➜  /Users/zhangzhi/.oh-my-zsh/plugins/incr git:(master) ✗ >ls

上面就是我放置 incr 插件的目录.

然后是配置 .zshrc 文件:

➜  /Users/zhangzhi  >nano .zshrc

然后插入一句下面的 shell 脚本:

source ~/.oh-my-zsh/plugins/incr/incr*.zsh

我把她放在了配置文件最下方.

请注意上面的路径地址,你要改成你的 incr*.zsh 所在的目录

然后保存 .zshrc 配置文件,这时如果你想让它立即生效

➜  /Users/zhangzhi  >source .zshrc

这样就可以了.其他 shell 窗口可以关闭重新打开及有了补全提示.

它不仅仅是对指令的补全,而且也会补全路径,文件名,最重要的是实时的,掌握好你的 tab 键,去飞吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ZSH中启用Python的自动补全功能,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装ZSH和Python。 2. 下载并安装zsh-autosuggestions插件,可以使用以下命令:git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions。 3. 打开.zshrc文件,可以使用vim ~/.zshrc命令进行编辑。 4. 找到plugins=(git)这一行,如果没有该行,请将其添加进去。 5. 将该行修改为如下形式:plugins=(git zsh-autosuggestions)。 6. 保存并关闭.zshrc文件。 7. 最后,重新启动ZSH终端,可以使用source ~/.zshrc命令来使更改生效。 这样,您就成功启用了ZSH中Python的自动补全功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [wine_env:WINE虚拟环境经理](https://download.csdn.net/download/weixin_42115003/18192224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [oh-my-zsh: shell自动补全 autocomplete](https://blog.csdn.net/hfcaoguilin/article/details/125927597)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [zsh+oh-my-zsh+命令行自动补全](https://blog.csdn.net/marina_1/article/details/120863279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值