今天我花了很多時間像樣的數目寫一個簡單的的zsh實施MacOS的;用法如下:
example command: git commit -m "Changed a few things"
command that copies: c git commit -m "Changed a few things"
# The second command does not actually execute the command, it just copies it.
# Using zsh, this should reduce the whole process to about 3 keystrokes:
#
# 1) CTRL + A (to go to the beginning of the line)
# 2) 'c' + ' '
# 3) ENTER
preexec()
是正確的,當你按回車鍵時調用的zsh的鉤子函數,但該命令實際執行之前。
由於某些字符,例如'「,我們將要使用preexec()
,它允許您訪問未經處理的原始命令
僞代碼是這樣的zsh中帶參數:
1)請確保該命令在開始
2)如果是這樣,通過焦炭複製整個命令,焦炭,到一個臨時變量
3)管道的臨時變量到,MACOS的複製緩衝區
真正的代碼:
c() {} # you'll want this so that you don't get a command unrecognized error
preexec() {
tmp="";
if [ "${1:0:1}" = "c" ] && [ "${1:1:1}" = " " ] && [ "${1:2:1}" != " " ]; then
for ((i=2; i<${#1}; i++)); do
tmp="${tmp}${1:$i:1}";
done
echo "$tmp" | pbcopy;
fi
}
來吧,粘在你的.zshrc文件中上述兩種功能,或任何你想要(我把我的一個文件在我.oh-my-zsh/custom
目錄)。
如果有人有一個更優雅的解決方案,PLZ說出來。 任何要避免使用鼠標。
? – alinsoar
OS X會做。 Linux和OS X解決方案非常理想。 –