summaryrefslogtreecommitdiff
path: root/.config/zsh/halfway/functions.zsh
blob: 9bc295c59707a3f58c7853b5371d273ba841c11b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Creates the given directories and then moves to the first one.
mkcd() {
	mkdir -p "$@";
	cd "$1";
}

# Create python directories with __init__.py.
mkdirpython() {
	mkdir -p "$@";
	local directory
	for directory in "$@";
	do touch "$directory/__init__.py";
	done;
}

# Switch from the current directory to the equivalent directory on another drive.
sd() {
	local wd="$(pwd)";
	wd="${wd/"$1"/"$2"}";
	printf %s\\n "$wd";
	cd "$wd";
}

# Copy the current directory to the clipboard.
pcopy() {
	printf %s "$(pwd)" | cclip
	pwd
}

vinfo() {
	INFOPATH="$XDG_DATA_HOME/info:$INFOPATH" ${EDITOR:-nvim} -R -M -c "Info $@" +only
}

vn3() {
	if [ "$#" -gt 0 ]; then
		local direc="$(printf %q "$1")"
		shift
		${EDITOR:-nvim} -c "NnnExplorer $direc" "$@"
	else
		${EDITOR:-nvim} -c NnnExplorer
	fi
}

# https://github.com/ohmyzsh/ohmyzsh/blob/8487a55/lib/cli.zsh#L625
src () {
	# Delete current completion cache
	command rm -f $_comp_dumpfile $ZSH_COMPDUMP

	# Old zsh versions don't have ZSH_ARGZERO
	local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}"
	# Check whether to run a login shell
	[[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh"
}