开源世界旅行手册 => 地理 => 命令系统lcg_music 写了:还是看不到图片,呵呵!!!
见以下页面
http://linuxtoy.org/docs/guide/ch14s07.html
代码: 全选
#less语法高亮。需要安装 source-highlight
PAGER='less -X -M'
export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
export LESS=' -R '
#让 cat 命令也语法高亮
hlcat() { less $* | cat }
#不过这样一来,cat 重定向到文件时会产生许多控制字符。所以用其它名字
alias tom='hlcat'
less pipe,idea很好,不知道为什么维护得不是很规矩。说得啥能干的,语法高亮,看word/pdf,看压缩包内容……我下的几个less pipe的脚本都有毛病。后来就死了这门心思了……kardinal 写了:搜索 zsh Interactive Syntax highlighting ,无意中发现一个好东东
代码: 全选
#less语法高亮。需要安装 source-highlight PAGER='less -X -M' export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" export LESS=' -R ' #让 cat 命令也语法高亮 hlcat() { less $* | cat } #不过这样一来,cat 重定向到文件时会产生许多控制字符。所以用其它名字 alias tom='hlcat'
代码: 全选
begin-of-line-complete(){
zle up-history
}
zle -N begin-of-line-complete
user-complete(){
[[ -z $BUFFER ]] && zle begin-of-line-complete
[[ -n $BUFFER ]] && zle expand-or-complete
}
zle -N user-complete
bindkey "\t" user-complete
比我强,我一个zle的函数也没写过。如果你仅仅要看语法高亮,在你的vim安装目录里面找找看,有个叫less.vim的,就是专门干这个的。kardinal 写了:我就看个语法高亮,凑合着还能用![]()
关于
光标在行首时,按 Tab 不缩进,而是出 cd 的候选菜单
我抄了几句(可能有点丑,凑合看吧……shell 编程一窍不通,现查的)现在的光标在行首(当前行为空),按 tab 能上翻历史纪录代码: 全选
begin-of-line-complete(){ zle up-history } zle -N begin-of-line-complete user-complete(){ [[ -z $BUFFER ]] && zle begin-of-line-complete [[ -n $BUFFER ]] && zle expand-or-complete } zle -N user-complete bindkey "\t" user-complete
光标在其它位置能补全
关键是在没有输入任何字符的情况下,按 tab 怎么出补全菜单
代码: 全选
alias vless='vim -u /usr/share/vim/macros/less.vim'
说的太对了eexpress 写了:入魔道了。
代码: 全选
user-complete(){
[[ -n $BUFFER ]] && zle expand-or-complete
[[ -z $BUFFER ]] && BUFFER="cd "
zle end-of-line
zle expand-or-complete
}
zle -N user-complete
bindkey "\t" user-complete
fish 的提示太详细了,提示参数用法到是不错,但大部分情况下不是很爽 ,比如 ls 一下就成这样的了eexpress 写了:那 fish 的功能不更强哦,不也是有bug而已。
都是金带的。
代码: 全选
a (Directory) b (Directory) c (Directory) d (Directory) e (Directory) ……
大腕 Linux 版: 你得清楚 linux 用户的心理,不求顺手,但求折腾……eexpress 写了:为了点点小功能,要修修补补的,是折腾。
这个俺不能认同。举几个例子eexpress 写了:shell熟悉了都好用啊。
也是没办法,要是能抄的话谁自个写啊roylez 写了: 比我强,我一个zle的函数也没写过。
roylez 写了:
如果你仅仅要看语法高亮,在你的vim安装目录里面找找看,有个叫less.vim的,就是专门干这个的。
查出来了:代码: 全选
alias vless='vim -u /usr/share/vim/macros/less.vim'
代码: 全选
##空行(光标在行首)补全 cd
#在行首按 tab ,出现 cd 命令和候选菜单
user-complete(){
[[ -n $BUFFER ]] && zle expand-or-complete
[[ -z $BUFFER ]] && BUFFER="cd "
zle end-of-line
zle expand-or-complete
}
zle -N user-complete
bindkey "\t" user-complete
代码: 全选
user-complete(){
if [[ -n $BUFFER ]] ; then
zle expand-or-complete
else
BUFFER="cd "
zle end-of-line
zle expand-or-complete
fi }
zle -N user-complete
bindkey "\t" user-complete
代码: 全选
user-complete(){
[[ -n $BUFFER ]] && zle expand-or-complete
[[ -z $BUFFER ]] && {
BUFFER="cd "
zle end-of-line
zle expand-or-complete }
}
zle -N user-complete
bindkey "\t" user-complete
ls is an alias for ls -F --color=auto
ls is /bin/ls
代码: 全选
alias run-help >&/dev/null && unalias run-help
autoload run-help
代码: 全选
zle_highlight=(region:bg=magenta #选中区域 (\C-@ 设置标记)
special:bold #特殊字符
isearch:underline)#搜索关键字
代码: 全选
alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10'
代码: 全选
bindkey "^[p" history-beginning-search-backward
bindkey "^[n" history-beginning-search-forward
代码: 全选
function mycd()
{
history -w # write current history file
builtin cd "$@" # do actual c d
local HISTDIR="$HOME/.dir_bash_history$PWD" # use& nbsp;nested folders for history
if [ ! -d "$HISTDIR" ]&n bsp;; then # create folder if neede d
mkdir -p "$HISTDIR"
fi
export HISTFILE="$HISTDIR/bash_history.txt" # set& nbsp;new history file
history -c # clear memory
history -r #read from current histfile
}
shopt -s histappend
alias cd="mycd"
export HISTFILE="$HOME/.dir_bash_history$PWD/bash_history.txt"
代码: 全选
chpwd() {
local ohistsize=$HISTSIZE
fc -W ~-/.history.$UID
HISTSIZE=0 # Discard previous dir's history
HISTSIZE=$ohistsize # Prepare for new dir's history
fc -R ./.history.$UID
}
代码: 全选
#每个目录使用独立的历史纪录
cd() {
builtin cd "$@" # do actual cd
fc -W # write current history file
local HISTDIR="$HOME/.zsh_history$PWD" # use nested folders for history
if [ ! -d "$HISTDIR" ] ; then # create folder if needed
mkdir -p "$HISTDIR"
fi
export HISTFILE="$HISTDIR/zhistory" # set new history file
touch $HISTFILE
local ohistsize=$HISTSIZE
HISTSIZE=0 # Discard previous dir's history
HISTSIZE=$ohistsize # Prepare for new dir's history
fc -R #read from current histfile
}
mkdir -p $HOME/.zsh_history$PWD
export HISTFILE="$HOME/.zsh_history$PWD/zhistory"