質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

3回答

491閲覧

zshのキーバインドの設定エラー

退会済みユーザー

退会済みユーザー

総合スコア0

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2018/02/19 02:16

編集2018/02/19 07:13

環境
・macOS Sierra 10.12.2
・zsh 5.4.2 (x86_64-apple-darwin16.7.0)

zshのキーバインドの設定についてです。

function git_commit() { BUFFER="git commit -m \"#" CURSOR=$#BUFFER BUFFER=$BUFFER\" } zle -N git_commit bindkey '^o' git_commit

上記の設定を行い、コントロール+oで

git commit -m "#(カーソル位置)"

上記のように展開されるのですが、それを以下のように展開されるようにしたく、

git commit -m "#(カーソル位置)" -m "" -m ""
function git_commit() { BUFFER="git commit -m \"#" CURSOR=$#BUFFER BUFFER=$BUFFER\" -m \"\" -m \"\" } zle -N git_commit bindkey '^o' git_commit

このような設定に変えたのですが、思うように動きませんでした。

実行結果は以下のとおりです(カーソル位置は#の後ろでした)

git_commit:3: command not found: -m git commit -m "#

何が原因で動かないのかがいまいちわからなくて困っています。スペースを\sにしたりしても特に変わらずでした。

また、コントロールキーは^で設定すれば動くとわかったのですが、コマンド、オプションキーは何の記号で設定すればいいのかがわからず、「キーバインド 記号 オプションキー」等で検索しても全く引っかかりませんでした。
そもそもコントロールキー以外では設定は出来ないのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unz.hori

2018/02/19 02:27

環境(OS)などについて詳細を質問に追記してください。
退会済みユーザー

退会済みユーザー

2018/02/19 05:30

追記致しました。ご指摘いただきありがとうございました。
unz.hori

2018/02/19 05:55

質問で提示している例で実行するとどのようになるのでしょうか?
退会済みユーザー

退会済みユーザー

2018/02/19 07:13

何度も申し訳ございません。追記致しましたのでご確認お願い致します。
guest

回答3

0

superuser
上記回答で以下がありました

And then you can bind them by putting the following in your .zshrc:

bindkey '^[begin' beginning-of-line
bindkey '^[end' end-of-line

commandキーにバインドしていると思われます。

投稿2018/02/20 02:09

unz.hori

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

stack overflow
上記の回答で以下がありました

Skip forward/back a word with opt-arrow

bindkey '[C' forward-word
bindkey '[D' backward-word
多分、option+カーソルで語単位の移動をしていると思われます。

投稿2018/02/20 02:04

unz.hori

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

shell

1unction git_commit() { 2 BUFFER='git commit -m "' 3 CURSOR=$#BUFFER 4 BUFFER=$BUFFER'" -m "" -m ""' 5}

ではどうでしょう?

投稿2018/02/19 07:30

編集2018/02/19 09:34
unz.hori

総合スコア1057

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/19 09:24

上記のようにして実行してみたところ、何も表示されず、次の入力時の状態(何もコマンドを入力してない状態でエンターキーを押したのと同じ状態)になるだけでした。
unz.hori

2018/02/19 09:34

回答を修正しました。確認してみてください。
退会済みユーザー

退会済みユーザー

2018/02/20 01:27

文字列として認識させるのですね。ありがとうございました。
unz.hori

2018/02/20 01:39

解決しましたか?
退会済みユーザー

退会済みユーザー

2018/02/20 02:38

これで解決しました!ありがとうございました。 キーについてもお教えいただいた内容を参考にいろいろ試してみます。 最後まで調べていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問