Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
d70e7329
Commit
d70e7329
authored
Mar 22, 2014
by
Bob Williams
Browse files
Merge remote-tracking branch 'upstream/master'
parents
5a586670
178b5224
Changes
34
Hide whitespace changes
Inline
Side-by-side
plugins/rake-fast/rake-fast.plugin.zsh
0 → 100644
View file @
d70e7329
# rake-fast
# Fast rake autocompletion plugin for oh-my-zsh
# This script caches the output for later usage and significantly speeds it up.
# It generates a .rake_tasks file in parallel to the Rakefile.
# You'll want to add `.rake_tasks` to your global .git_ignore file:
# https://help.github.com/articles/ignoring-files#global-gitignore
# You can force .rake_tasks to refresh with:
# $ rake_refresh
# This is entirely based on Ullrich Schäfer's work
# (https://github.com/robb/.dotfiles/pull/10/),
# which is inspired by this Ruby on Rails trick from 2006:
# http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh/
_rake_refresh
()
{
if
[
-f
.rake_tasks
]
;
then
rm
.rake_tasks
fi
echo
"Generating .rake_tasks..."
>
/dev/stderr
_rake_generate
cat
.rake_tasks
}
_rake_does_task_list_need_generating
()
{
if
[
!
-f
.rake_tasks
]
;
then return
0
;
else
accurate
=
$(
stat
-f
%m .rake_tasks
)
changed
=
$(
stat
-f
%m Rakefile
)
return
$(
expr
$accurate
'>='
$changed
)
fi
}
_rake_generate
()
{
rake
--silent
--tasks
|
cut
-d
" "
-f
2
>
.rake_tasks
}
_rake
()
{
if
[
-f
Rakefile
]
;
then
if
_rake_does_task_list_need_generating
;
then
echo
"
\n
Generating .rake_tasks..."
>
/dev/stderr
_rake_generate
fi
compadd
`
cat
.rake_tasks
`
fi
}
compdef _rake rake
alias
rake_refresh
=
'_rake_refresh'
plugins/rbenv/rbenv.plugin.zsh
View file @
d70e7329
...
...
@@ -10,9 +10,6 @@ FOUND_RBENV=0
rbenvdirs
=(
"
$HOME
/.rbenv"
"/usr/local/rbenv"
"/opt/rbenv"
)
if
_homebrew-installed
&&
_rbenv-from-homebrew-installed
;
then
rbenvdirs
=(
$(
brew
--prefix
rbenv
)
"
${
rbenvdirs
[@]
}
"
)
if
[[
$RBENV_ROOT
=
''
]]
;
then
RBENV_ROOT
=
"
$HOME
/.rbenv"
fi
fi
for
rbenvdir
in
"
${
rbenvdirs
[@]
}
"
;
do
...
...
plugins/scd/README.md
0 → 100644
View file @
d70e7329
# scd - smart change of directory
Define
`scd`
shell function for changing to any directory with
a few keystrokes.
`scd`
keeps history of the visited directories, which serves as an index of
the known paths. The directory index is updated after every
`cd`
command in
the shell and can be also filled manually by running
`scd -a`
. To switch to
some directory,
`scd`
needs few fragments of the desired path to match with
the index. A selection menu is displayed in case of several matches, with a
preference given to recently visited paths.
`scd`
can create permanent
directory aliases, which appear as named directories in zsh session.
## INSTALLATION
For oh-my-zsh, add
`scd`
to the
`plugins`
array in the ~/.zshrc file as in the
[
template file
](
../../templates/zshrc.zsh-template#L45
)
.
Besides zsh,
`scd`
can be used with
*bash*
,
*dash*
or
*tcsh*
shells and is also available as
[
Vim
](
http://www.vim.org/
)
plugin and
[
IPython
](
http://ipython.org/
)
extension. For installation details, see
https://github.com/pavoljuhas/smart-change-directory.
## SYNOPSIS
```
sh
scd
[
options]
[
pattern1 pattern2 ...]
```
## OPTIONS
<dl><dt>
-a, --add
</dt><dd>
add specified directories to the directory index.
</dd><dt>
--unindex
</dt><dd>
remove specified directories from the index.
</dd><dt>
-r, --recursive
</dt><dd>
apply options
<em>
--add
</em>
or
<em>
--unindex
</em>
recursively.
</dd><dt>
--alias=ALIAS
</dt><dd>
create alias for the current or specified directory and save it to
<em>
~/.scdalias.zsh
</em>
.
</dd><dt>
--unalias
</dt><dd>
remove ALIAS definition for the current or specified directory from
<em>
~/.scdalias.zsh
</em>
.
</dd><dt>
--list
</dt><dd>
show matching directories and exit.
</dd><dt>
-v, --verbose
</dt><dd>
display directory rank in the selection menu.
</dd><dt>
-h, --help
</dt><dd>
display this options summary and exit.
</dd>
</dl>
## Examples
```
sh
# Index recursively some paths for the very first run
scd
-ar
~/Documents/
# Change to a directory path matching "doc"
scd doc
# Change to a path matching all of "a", "b" and "c"
scd a b c
# Change to a directory path that ends with "ts"
scd
"ts(#e)"
# Show selection menu and ranking of 20 most likely directories
scd
-v
# Alias current directory as "xray"
scd
--alias
=
xray
# Jump to a previously defined aliased directory
scd xray
```
# FILES
<dl><dt>
~/.scdhistory
</dt><dd>
time-stamped index of visited directories.
</dd><dt>
~/.scdalias.zsh
</dt><dd>
scd-generated definitions of directory aliases.
</dd>
</dl>
# ENVIRONMENT
<dl><dt>
SCD_HISTFILE
</dt><dd>
path to the scd index file (by default ~/.scdhistory).
</dd><dt>
SCD_HISTSIZE
</dt><dd>
maximum number of entries in the index (5000). Index is trimmed when it
exceeds
<em>
SCD_HISTSIZE
</em>
by more than 20%.
</dd><dt>
SCD_MENUSIZE
</dt><dd>
maximum number of items for directory selection menu (20).
</dd><dt>
SCD_MEANLIFE
</dt><dd>
mean lifetime in seconds for exponential decay of directory
likelihood (86400).
</dd><dt>
SCD_THRESHOLD
</dt><dd>
threshold for cumulative directory likelihood. Directories with
a lower likelihood compared to the best match are excluded (0.005).
</dd><dt>
SCD_SCRIPT
</dt><dd>
command script file where scd writes the final
<code>
cd
</code>
command. This variable must be defined when scd runs in its own
process rather than as a shell function. It is up to the
scd caller to use the output in
<em>
SCD_SCRIPT
</em>
.
</dd>
</dl>
plugins/scd/scd
0 → 100755
View file @
d70e7329
#!/bin/zsh -f
emulate
-L
zsh
local
EXIT
=
return
if
[[
$(
whence
-w
$0
)
==
*
:
' '
command
]]
;
then
emulate
-R
zsh
local
RUNNING_AS_COMMAND
=
1
EXIT
=
exit
fi
local
DOC
=
'scd -- smart change to a recently used directory
usage: scd [options] [pattern1 pattern2 ...]
Go to a directory path that contains all fixed string patterns. Prefer
recently visited directories and directories with patterns in their tail
component. Display a selection menu in case of multiple matches.
Options:
-a, --add add specified directories to the directory index
--unindex remove specified directories from the index
-r, --recursive apply options --add or --unindex recursively
--alias=ALIAS create alias for the current or specified directory and
store it in ~/.scdalias.zsh
--unalias remove ALIAS definition for the current or specified
directory from ~/.scdalias.zsh
--list show matching directories and exit
-v, --verbose display directory rank in the selection menu
-h, --help display this message and exit
'
local
SCD_HISTFILE
=
${
SCD_HISTFILE
:-${
HOME
}
/.scdhistory
}
local
SCD_HISTSIZE
=
${
SCD_HISTSIZE
:-
5000
}
local
SCD_MENUSIZE
=
${
SCD_MENUSIZE
:-
20
}
local
SCD_MEANLIFE
=
${
SCD_MEANLIFE
:-
86400
}
local
SCD_THRESHOLD
=
${
SCD_THRESHOLD
:-
0
.005
}
local
SCD_SCRIPT
=
${
RUNNING_AS_COMMAND
:+
$SCD_SCRIPT
}
local
SCD_ALIAS
=
~/.scdalias.zsh
local
ICASE a d m p i tdir maxrank threshold
local
opt_help opt_add opt_unindex opt_recursive opt_verbose
local
opt_alias opt_unalias opt_list
local
-A
drank dalias
local
dmatching
local
last_directory
setopt extendedhistory extendedglob noautonamedirs brace_ccl
# If SCD_SCRIPT is defined make sure the file exists and is empty.
# This removes any previous old commands.
[[
-n
"
$SCD_SCRIPT
"
]]
&&
[[
-s
$SCD_SCRIPT
||
!
-f
$SCD_SCRIPT
]]
&&
(
umask
077
:
>
|
$SCD_SCRIPT
)
# process command line options
zmodload
-i
zsh/zutil
zmodload
-i
zsh/datetime
zparseopts
-D
--
a
=
opt_add
-add
=
opt_add
-unindex
=
opt_unindex
\
r
=
opt_recursive
-recursive
=
opt_recursive
\
-alias
:
=
opt_alias
-unalias
=
opt_unalias
-list
=
opt_list
\
v
=
opt_verbose
-verbose
=
opt_verbose
h
=
opt_help
-help
=
opt_help
\
||
$EXIT
$?
if
[[
-n
$opt_help
]]
;
then
print
$DOC
$EXIT
fi
# load directory aliases if they exist
[[
-r
$SCD_ALIAS
]]
&&
source
$SCD_ALIAS
# works faster than the (:a) modifier and is compatible with zsh 4.2.6
_scd_Y19oug_abspath
()
{
set
-A
$1
${
(ps
:
\0
:
)
"
$(
unfunction
-m
"*"
;
shift
for
d
;
do
cd
$d
&&
print
-Nr
--
$PWD
&&
cd
$OLDPWD
done
)
"
}
}
# define directory alias
if
[[
-n
$opt_alias
]]
;
then
if
[[
-n
$1
&&
!
-d
$1
]]
;
then
print
-u2
"'
$1
' is not a directory."
$EXIT
1
fi
a
=
${
opt_alias
[-1]#=
}
_scd_Y19oug_abspath d
${
1
:-
$PWD
}
# alias in the current shell, update alias file if successful
hash
-d
--
$a
=
$d
&&
(
umask
077
hash
-dr
[[
-r
$SCD_ALIAS
]]
&&
source
$SCD_ALIAS
hash
-d
--
$a
=
$d
hash
-dL
>
|
$SCD_ALIAS
)
$EXIT
$?
fi
# undefine directory alias
if
[[
-n
$opt_unalias
]]
;
then
if
[[
-n
$1
&&
!
-d
$1
]]
;
then
print
-u2
"'
$1
' is not a directory."
$EXIT
1
fi
_scd_Y19oug_abspath a
${
1
:-
$PWD
}
a
=
$(
print
-rD
${
a
}
)
if
[[
$a
!=
[
~][^/]##
]]
;
then
$EXIT
fi
a
=
${
a
#[~]
}
# unalias in the current shell, update alias file if successful
if
unhash
-d
--
$a
2>/dev/null
&&
[[
-r
$SCD_ALIAS
]]
;
then
(
umask
077
hash
-dr
source
$SCD_ALIAS
unhash
-d
--
$a
2>/dev/null
&&
hash
-dL
>
|
$SCD_ALIAS
)
fi
$EXIT
$?
fi
# Rewrite directory index if it is at least 20% oversized
if
[[
-s
$SCD_HISTFILE
]]
&&
\
((
$(
wc
-l
<
$SCD_HISTFILE
)
>
1.2
*
$SCD_HISTSIZE
))
;
then
m
=(
${
(f)
"
$(
<
$SCD_HISTFILE
)
"
}
)
print
-lr
--
${
m
[-
$SCD_HISTSIZE
,-1]
}
>
|
${
SCD_HISTFILE
}
fi
# Determine the last recorded directory
if
[[
-s
${
SCD_HISTFILE
}
]]
;
then
last_directory
=
${
"
$(
tail
-1
${
SCD_HISTFILE
}
)
"
#*;
}
fi
# Internal functions are prefixed with "_scd_Y19oug_".
# The "record" function adds its arguments to the directory index.
_scd_Y19oug_record
()
{
while
[[
-n
$last_directory
&&
$1
==
$last_directory
]]
;
do
shift
done
if
[[
$#
-gt
0
]]
;
then
(
umask
077
p
=
":
${
EPOCHSECONDS
}
:0;"
print
-lr
--
${
p
}${
^*
}
>>
|
$SCD_HISTFILE
)
fi
}
if
[[
-n
$opt_add
]]
;
then
for
d
;
do
if
[[
!
-d
$d
]]
;
then
print
-u2
"Directory '
$d
' does not exist."
$EXIT
2
fi
done
_scd_Y19oug_abspath m
${
*
:-
$PWD
}
_scd_Y19oug_record
$m
if
[[
-n
$opt_recursive
]]
;
then
for
d
in
$m
;
do
print
-n
"scanning
${
d
}
... "
_scd_Y19oug_record
${
d
}
/
**
/
*
(
-/N
)
print
"[done]"
done
fi
$EXIT
fi
# take care of removing entries from the directory index
if
[[
-n
$opt_unindex
]]
;
then
if
[[
!
-s
$SCD_HISTFILE
]]
;
then
$EXIT
fi
# expand existing directories in the argument list
for
i
in
{
1..
$#}
;
do
if
[[
-d
${
argv
[i]
}
]]
;
then
_scd_Y19oug_abspath d
${
argv
[i]
}
argv[i]
=
${
d
}
fi
done
m
=
"
$(
awk
-v
recursive
=
${
opt_recursive
}
'
BEGIN {
for (i = 2; i < ARGC; ++i) {
argset[ARGV[i]] = 1;
delete ARGV[i];
}
}
1 {
d = $0; sub(/^[^;]*;/, "", d);
if (d in argset) next;
}
recursive {
for (a in argset) {
if (substr(d, 1, length(a) + 1) == a"/") next;
}
}
{ print $0 }
'
$SCD_HISTFILE
${
*
:-
$PWD
}
)
"
||
$EXIT
$?
:
>
|
${
SCD_HISTFILE
}
[[
${#
m
}
==
0
]]
||
print
-r
--
$m
>>
${
SCD_HISTFILE
}
$EXIT
fi
# The "action" function is called when there is just one target directory.
_scd_Y19oug_action
()
{
cd
$1
||
return
$?
if
[[
-z
$SCD_SCRIPT
&&
-n
$RUNNING_AS_COMMAND
]]
;
then
print
-u2
"Warning: running as command with SCD_SCRIPT undefined."
fi
if
[[
-n
$SCD_SCRIPT
]]
;
then
print
-r
"cd
${
(q)1
}
"
>
|
$SCD_SCRIPT
fi
}
# Match and rank patterns to the index file
# set global arrays dmatching and drank
_scd_Y19oug_match
()
{
## single argument that is an existing directory or directory alias
if
[[
$#
==
1
]]
&&
\
[[
-d
${
d
::
=
$1
}
||
-d
${
d
::
=
${
nameddirs
[
$1
]
}}
]]
&&
[[
-x
$d
]]
;
then
_scd_Y19oug_abspath dmatching
$d
drank[
${
dmatching
[1]
}
]=
1
return
fi
# ignore case unless there is an argument with an uppercase letter
[[
"
$*
"
==
*
[[
:upper:]]
*
]]
||
ICASE
=
'(#i)'
# calculate rank of all directories in the SCD_HISTFILE and keep it as drank
# include a dummy entry for splitting of an empty string is buggy
[[
-s
$SCD_HISTFILE
]]
&&
drank
=(
${
(f)
"
$(
print
-l
/dev/null
-10
<
$SCD_HISTFILE
\
awk
-v
epochseconds
=
$EPOCHSECONDS
-v
meanlife
=
$SCD_MEANLIFE
'
BEGIN { FS = "[:;]"; }
length($0) < 4096 && $2 > 0 {
tau = 1.0 * ($2 - epochseconds) / meanlife;
if (tau < -4.61) tau = -4.61;
prec = exp(tau);
sub(/^[^;]*;/, "");
if (NF) ptot[$0] += prec;
}
END { for (di in ptot) { print di; print ptot[di]; } }'
)
"
}
)
unset
"drank[/dev/null]"
# filter drank to the entries that match all arguments
for
a
;
do
p
=
${
ICASE
}
"*
${
a
}
*"
drank
=(
${
(kv)drank[(I)
${
~p
}
]
}
)
done
# build a list of matching directories reverse-sorted by their probabilities
dmatching
=(
${
(f)
"
$(
for
d p
in
${
(kv)drank
}
;
do
print
-r
--
"
$p
$d
"
;
done
|
sort
-grk1
|
cut
-d
' '
-f
2-
)
"
}
)
# if some directory paths match all patterns in order, discard all others
p
=
${
ICASE
}
"*
${
(j
:
*
:
)argv
}
*"
m
=(
${
(M)dmatching
:#
${
~p
}}
)
[[
-d
${
m
[1]
}
]]
&&
dmatching
=(
$m
)
# if some directory names match last pattern, discard all others
p
=
${
ICASE
}
"*
${
(j
:
*
:
)argv
}
[^/]#"
m
=(
${
(M)dmatching
:#
${
~p
}}
)
[[
-d
${
m
[1]
}
]]
&&
dmatching
=(
$m
)
# if some directory names match all patterns, discard all others
m
=(
$dmatching
)
for
a
;
do
p
=
${
ICASE
}
"*/[^/]#
${
a
}
[^/]#"
m
=(
${
(M)m
:#
${
~p
}}
)
done
[[
-d
${
m
[1]
}
]]
&&
dmatching
=(
$m
)
# if some directory names match all patterns in order, discard all others
p
=
${
ICASE
}
"/*
${
(j
:[^/]#:
)argv
}
[^/]#"
m
=(
${
(M)dmatching
:#
${
~p
}}
)
[[
-d
${
m
[1]
}
]]
&&
dmatching
=(
$m
)
# do not match $HOME or $PWD when run without arguments
if
[[
$#
==
0
]]
;
then
dmatching
=(
${
dmatching
:#
(
${
HOME
}
|
${
PWD
}
)
}
)
fi
# keep at most SCD_MENUSIZE of matching and valid directories
m
=(
)
for
d
in
$dmatching
;
do
[[
${#
m
}
==
$SCD_MENUSIZE
]]
&&
break
[[
-d
$d
&&
-x
$d
]]
&&
m+
=
$d
done
dmatching
=(
$m
)
# find the maximum rank
maxrank
=
0.0
for
d
in
$dmatching
;
do
[[
${
drank
[
$d
]
}
-lt
maxrank
]]
||
maxrank
=
${
drank
[
$d
]
}
done
# discard all directories below the rank threshold
threshold
=
$((
maxrank
*
SCD_THRESHOLD
))
dmatching
=(
${
^dmatching
}
(
Ne:
'(( ${drank[$REPLY]} >= threshold ))'
:
)
)
}
_scd_Y19oug_match
$*
## process whatever directories that remained
if
[[
${#
dmatching
}
==
0
]]
;
then
print
-u2
"No matching directory."
$EXIT
1
fi
## build formatted directory aliases for selection menu or list display
for
d
in
$dmatching
;
do
if
[[
-n
${
opt_verbose
}
]]
;
then
dalias[
$d
]=
$(
printf
"%.3g %s"
${
drank
[
$d
]
}
$d
)
else
dalias[
$d
]=
$(
print
-Dr
--
$d
)
fi
done
## process the --list option
if
[[
-n
$opt_list
]]
;
then
for
d
in
$dmatching
;
do
print
-r
--
"#
${
dalias
[
$d
]
}
"
print
-r
--
$d
done
$EXIT
fi
## process single directory match
if
[[
${#
dmatching
}
==
1
]]
;
then
_scd_Y19oug_action
$dmatching
$EXIT
$?
fi
## here we have multiple matches - display selection menu
a
=(
{
a-z
}
{
A-Z
}
)
p
=(
)
for
i
in
{
1..
${#
dmatching
}
}
;
do
[[
-n
${
a
[i]
}
]]
||
break
p+
=
"
${
a
[i]
}
)
${
dalias
[
${
dmatching
[i]
}
]
}
"
done
print
-c
-r
--
$p
if
read
-s
-k
1 d
&&
[[
${
i
::
=
${
a
[(I)
$d
]
}}
-gt
0
]]
;
then
_scd_Y19oug_action
${
dmatching
[i]
}
$EXIT
$?
fi
plugins/scd/scd.plugin.zsh
0 → 100644
View file @
d70e7329
## The scd script should autoload as a shell function.
autoload scd
## If the scd function exists, define a change-directory-hook function
## to record visited directories in the scd index.
if
[[
${
+functions[scd]
}
==
1
]]
;
then
scd_chpwd_hook
()
{
scd
--add
$PWD
}
autoload add-zsh-hook
add-zsh-hook chpwd scd_chpwd_hook
fi
## Allow scd usage with unquoted wildcard characters such as "*" or "?".
alias
scd
=
'noglob scd'
## Load the directory aliases created by scd if any.
if
[[
-s
~/.scdalias.zsh
]]
;
then
source
~/.scdalias.zsh
;
fi
plugins/vagrant/_vagrant
View file @
d70e7329
...
...
@@ -44,7 +44,7 @@ __task_list ()
__box_list ()
{
_wanted application expl 'command' compadd $(command
ls -1 $HOME/.
vagrant
/
box
es 2>/dev/null
| sed -e 's/ /\\ /g')
_wanted application expl 'command' compadd $(command vagrant
box
list
| sed -e 's/ /\\ /g')
}
__vm_list ()
...
...
plugins/vi-mode/vi-mode.plugin.zsh
View file @
d70e7329
...
...
@@ -17,9 +17,15 @@ function zle-keymap-select zle-line-init zle-line-finish {
zle
-N
zle-line-init
zle
-N
zle-line-finish
zle
-N
zle-keymap-select
zle
-N
edit-command-line
bindkey
-v
# allow v to edit the command line (standard behaviour)
autoload
-Uz
edit-command-line
bindkey
-M
vicmd
'v'
edit-command-line
# if mode indicator wasn't setup by theme, define default
if
[[
"
$MODE_INDICATOR
"
==
""
]]
;
then
MODE_INDICATOR
=
"%{
$fg_bold
[red]%}<%{
$fg
[red]%}<<%{
$reset_color
%}"
...
...
plugins/vim-interaction/README.md
0 → 100644
View file @
d70e7329
# Vim Interaction #
The plugin presents a function called
`callvim`
whose usage is:
usage: callvim [-b cmd] [-a cmd] [file ... fileN]
-b cmd Run this command in GVIM before editing the first file
-a cmd Run this command in GVIM after editing the first file
file The file to edit
... fileN The other files to add to the argslist
## Rationale ##
The idea for this script is to give you some decent interaction with a running
GVim session. Normally you'll be running around your filesystem doing any
number of amazing things and you'll need to load some files into GVim for
editing, inspecting, destruction, or other bits of mayhem. This script lets you
do that.
## Aliases ##
There are a few aliases presented as well:
*
`v`
A shorthand for
`callvim`
*
`vvsp`
Edits the passed in file but first makes a vertical split
*
`vhsp`
Edits the passed in file but first makes a horizontal split
## Post Callout ##
At the end of the
`callvim`
function we invoke the
`postCallVim`
function if it
exists. If you're using MacVim, for example, you could define a function that
brings window focus to it after the file is loaded:
function postCallVim
{
osascript -e 'tell application "MacVim" to activate'
}
This'll be different depending on your OS / Window Manager.
## Examples ##
This will load
`/tmp/myfile.scala`
into the running GVim session:
> v /tmp/myfile.scala
This will load it after first doing a vertical split:
> vvsp /tmp/myfile.scala
or
> v -b':vsp' /tmp/myfile.scala
This will load it after doing a horizontal split, then moving to the bottom of
the file:
> vhsp -aG /tmp/myfile.scala
or
> v -b':sp' -aG /tmp/myfile.scala
This will load the file and then copy the first line to the end (Why you would
ever want to do this... I dunno):
> v -a':1t$' /tmp/myfile.scala
And this will load all of the
`*.txt`
files into the args list:
> v *.txt
If you want to load files into areas that are already split, use one of the
aliases for that:
# Do a ':wincmd h' first
> vh /tmp/myfile.scala
# Do a ':wincmd j' first
> vj /tmp/myfile.scala
# Do a ':wincmd k' first
> vk /tmp/myfile.scala
# Do a ':wincmd l' first
> vl /tmp/myfile.scala
plugins/vim-interaction/vim-interaction.plugin.zsh
0 → 100644
View file @
d70e7329
#
# See README.md
#
# Derek Wyatt (derek@{myfirstnamemylastname}.org
#
function
resolveFile
{
if
[
-f
"
$1
"
]
;
then
echo
$(
readlink
-f
"
$1
"
)
elif
[[
"
${
1
#/
}
"
==
"
$1
"
]]
;
then
echo
"
$(
pwd
)
/
$1
"
else
echo
$1
fi
}
function
callvim
{
if
[[
$#
==
0
]]
;
then
cat
<<
EOH
usage: callvim [-b cmd] [-a cmd] [file ... fileN]
-b cmd Run this command in GVIM before editing the first file
-a cmd Run this command in GVIM after editing the first file
file The file to edit
... fileN The other files to add to the argslist
EOH
return
0
fi
local
cmd
=
""
local
before
=
"<esc>"
local
after
=
""
while
getopts
":b:a:"
option
do
case
$option
in
a
)
after
=
"
$OPTARG
"
;;
b
)
before
=
"
$OPTARG
"
;;
esac
done
shift
$((
OPTIND-1
))
if
[[
${
after
#
:
}
!=
$after
&&
${
after
%<cr>
}
==
$after
]]
;
then
after
=
"
$after
<cr>"
fi
if
[[
${
before
#
:
}
!=
$before
&&
${
before
%<cr>
}
==
$before
]]
;
then
before
=
"
$before
<cr>"
fi
local
files
=
""
for
f
in
$@
do
files
=
"
$files
$(
resolveFile
$f
)
"
done
if
[[
-n
$files
]]
;
then
files
=
':args! '
"
$files
<cr>"
fi
cmd
=
"
$before$files$after
"
gvim
--remote-send
"
$cmd
"
if
typeset
-f
postCallVim
>
/dev/null
;
then
postCallVim
fi
}
alias
v
=
callvim
alias
vvsp
=
"callvim -b':vsp'"
alias
vhsp
=
"callvim -b':sp'"
alias
vk
=
"callvim -b':wincmd k'"
alias
vj
=
"callvim -b':wincmd j'"
alias
vl
=
"callvim -b':wincmd l'"
alias
vh
=
"callvim -b':wincmd h'"
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
View file @
d70e7329
virtualenvwrapper
=
'virtualenvwrapper
_lazy
.sh'
virtualenvwrapper
=
'virtualenvwrapper.sh'
if
((
$+
commands[
$virtualenvwrapper
]
))
;
then
source
${${
virtualenvwrapper
}
:c
}
...
...
@@ -17,7 +17,7 @@ if (( $+commands[$virtualenvwrapper] )); then
# Check for virtualenv name override
if
[[
-f
"
$PROJECT_ROOT
/.venv"
]]
;
then
ENV_NAME
=
`
cat
"
$PROJECT_ROOT
/.venv"
`
elif
[[
-f
"
$PROJECT_ROOT
/.venv/bin/activate"
]]
;
then
elif
[[
-f
"
$PROJECT_ROOT
/.venv/bin/activate"
]]
;
then
ENV_NAME
=
"
$PROJECT_ROOT
/.venv"
elif
[[
"
$PROJECT_ROOT
"
!=
"."
]]
;
then
ENV_NAME
=
`
basename
"
$PROJECT_ROOT
"
`
...
...
plugins/zsh_reload/zsh_reload.plugin.zsh
0 → 100644
View file @
d70e7329
zsh_cache
=
$HOME
/.zsh_cache
mkdir
-p
$zsh_cache
# reload zshrc
function
src
()
{
autoload
-U
compinit zrecompile
compinit
-d
$zsh_cache
/zcomp-
$HOST
for
f
in
$HOME
/.zshrc
$zsh_cache
/zcomp-
$HOST
;
do
zrecompile
-p
$f
&&
rm
-f
$f
.zwc.old
done
source
~/.zshrc
}
\ No newline at end of file
templates/zshrc.zsh-template
View file @
d70e7329
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
export
ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
...
...
themes/gallois.zsh-theme
View file @
d70e7329
...
...
@@ -18,7 +18,7 @@ else
if which rbenv &> /dev/null; then
RPS1='$(git_custom_status)%{$fg[red]%}[`rbenv version | sed -e "s/ (set.*$//"`]%{$reset_color%} $EPS1'
else
if which chruby_prompt_info &
> /dev/null
; then
if
[[ -n `
which chruby_prompt_info
`
&
& -n `chruby_prompt_info` ]]
; then
RPS1='$(git_custom_status)%{$fg[red]%}[`chruby_prompt_info`]%{$reset_color%} $EPS1'
else
RPS1='$(git_custom_status) $EPS1'
...
...
themes/gnzh.zsh-theme
View file @
d70e7329
...
...
@@ -6,7 +6,7 @@ autoload -U colors zsh/terminfo # Used in the colour alias below
colors
setopt prompt_subst
# make some aliases for the colours: (coud use normal escap
.
seq
'
s too)
# make some aliases for the colours: (cou
l
d use normal escap
e
seq
uence
s too)
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$fg[${(L)color}]%}'
done
...
...
@@ -25,7 +25,7 @@ elif [[ $UID -eq 0 ]]; then # root
fi
# Check if we are on SSH or not
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
eval PR_HOST='${PR_YELLOW}%M${PR_NO_COLOR}' #SSH
else
eval PR_HOST='${PR_GREEN}%M${PR_NO_COLOR}' # no SSH
...
...
@@ -36,12 +36,12 @@ local return_code="%(?..%{$PR_RED%}%? ↵%{$PR_NO_COLOR%})"
local user_host='${PR_USER}${PR_CYAN}@${PR_HOST}'
local current_dir='%{$PR_BOLD$PR_BLUE%}%~%{$PR_NO_COLOR%}'
local rvm_ruby=''
if which rvm-prompt &> /dev/null; then
if ${HOME}/.rvm/bin/rvm-prompt &> /dev/null; then # detect local user rvm installation
rvm_ruby='%{$PR_RED%}‹$(${HOME}/.rvm/bin/rvm-prompt i v g s)›%{$PR_NO_COLOR%}'
elif which rvm-prompt &> /dev/null; then # detect sysem-wide rvm installation
rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}'
else
if which rbenv &> /dev/null; then
rvm_ruby='%{$PR_RED%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$PR_NO_COLOR%}'
fi
elif which rbenv &> /dev/null; then # detect Simple Ruby Version management
rvm_ruby='%{$PR_RED%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$PR_NO_COLOR%}'
fi
local git_branch='$(git_prompt_info)%{$PR_NO_COLOR%}'
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment