私はMacOSののためのシンプルなzshの実装を書いて、今日の時間のまともな金額を費やしました。次のように使用方法は次のとおりです。
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()
は、Enterキーを押すと右に呼び出されるzshのフック関数ですが、コマンドが実際に実行される前に。 。
1)行います、我々はあなたが未処理、元のコマンドにアクセスすることを可能にする、preexec()
を使用したいと思うでしょう
擬似コードはこのように書きます「"」のような特定の文字のzshのストリップ引数以降
必ずコマンドは最初
2)それがない場合は、にtemp変数
3)パイプ一時変数に、charで、文字をコマンド全体をコピーで'c '
を持っています、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ファイルで上記の2つの機能をスティック、またはあなたが好きな場所(私は私の.oh-my-zsh/custom
ディレクトリ内のファイルに地雷を置きます)。
誰かがより洗練されたソリューションを持っている場合は、plzが話をします。 マウスを使用しないようにするには。私は私が探していますコマンド番号を見つけるためにhistory
を使用
を? – alinsoar
OS Xが行います。 LinuxとOS Xのソリューションが理想的です。 –