bashで補完スレ

1complete
垢版 |
NGNG
bash2で補完機能が強化されているようですが
皆さんいかがお過ごしでしょうか?
NGNG
2Get
NGNG
>>1
> bash2で補完機能が強化されているようですが
> 皆さんいかがお過ごしでしょうか?

氏ね
4名無しさん@お腹いっぱい。
垢版 |
NGNG
complete -d cd
complete -c man
complete -u {su,finger}
NGNG
autoload -U compinit;compinit
6名無しさん@お腹いっぱい。
垢版 |
NGNG
gccの引数として*.cを補完させたいときどうすればいいの?
7名無しさん@お腹いっぱい。
垢版 |
NGNG
>>6
漏れも教えてほすぃ
8名無しさん@お腹いっぱい。
垢版 |
NGNG
mv !$ ~/trash
みたいなAlias書きたいのですが、、、
どうかいたらいいですかね?
9名無しさん┃】【┃Dolby
垢版 |
NGNG
>>6 bash-2.0.5aの
examples/complete/complete* を眺めた感じでは

complete -f -X '!*.c' gcc

だと思う。誰か試してくれ
10名無しさん@お腹いっぱい。
垢版 |
NGNG
>>8
!$が何か知りませんが
function rm () { command mv $@ ~/trash/ ; }
とかどうでしょう?
rmとmvのオプションの違いとかを吸収していませんが

>>9
カレントディレクトリのファイルはうまく補完できるみたいです
lprとかで印刷するときなどにディレクトリ名も補完しながら
探せると便利だと思うんですが
complete -f -X'!*.ps' lpr
と真似してみたところディレクトリは補完されないようです
11名無しさん@お腹いっぱい。
垢版 |
NGNG
>>10
rm -r怒られるのちと痛いんでsedかawkでちょっとだけ
引数修正したいね。
12名無しさん@お腹いっぱい。
垢版 |
NGNG
bashよりzshつかうべき?
NGNG
>>12
悩むなら bash より zsh 使えば良い。
NGNG
っつー事で zsh スレ
http://pc.2ch.net/test/read.cgi/unix/990283346/
15名無しさん@お腹いっぱい。
垢版 |
NGNG
>>14
そりゃ反則ですよ
16名無しさん@お腹いっぱい。
垢版 |
NGNG
bash2って何処で手にはいるの?
17名無しさん@お腹いっぱい。
垢版 |
NGNG
>>16
FreeBSDやLinuxのほとんどのディストリビューションに
はいってますよ。
18名無しさん@お腹いっぱい。
垢版 |
NGNG
bash2補完機能もっとがんばれage
19名無しさん@お腹いっぱい。
垢版 |
NGNG
ええと、自慢の.bashrcをアプし合うスレはここですか?
20名無しさん@お腹いっぱい。
垢版 |
NGNG
>>19
いいえ。ゴミなら/dev/nullにどうぞ。
NGNG
おまえらのシステムにはこういうゴミが有りますか?
/usr/man/man1/..1.gz
/usr/man/man1/:.1.gz
NGNG
complete: usage: complete [-abcdefjkvu] [-pr]
[-A action] [-G globpat] [-W wordlist] [-P prefix]
[-S suffix] [-X filterpat] [-F function] [-C command] [name ...]

使い方が判らんのれす
23名無しさん@お腹いっぱい。
垢版 |
NGNG
>>19

.bashrc

とりあえずネラーなら

MAILPATH="/var/mail/mona?メール キタ━━━━━━(゜∀゜)━━━━━━ !!!!! "
MAILCHECK=5

だろう。メールボックスのパスは自分で変えろよ。
24名無しさん@お腹いっぱい。
垢版 |
NGNG
>>22
禿道
NGNG
man bash2 に結構書いてあった。
しかし -C の挙動が理解できない。
NGNG
スクリプトとかで /bin/bash が使われた時に
complete 無いぞ メッセージが出るんで
[ "$BASH_VERSINFO" = "2" ] で回避してみた。
27名無しさん@お腹いっぱい。
垢版 |
NGNG
http://www.KU3G.org/negi/diary/?20020222#200202222
ここで少しだけ紹介されていた。ここにあるリンク先
http://www.caliban.org/bash/index.shtml#completion
にあるbash-completion-20020225.tar.gzのなかにたくさん
補完候補があったよ。但し、2.05以降でしか使えないみたい
だから2.04とかのひとはがんばってgoogleとかで探さないとね。
28名無しさん@お腹いっぱい。
垢版 |
NGNG
>>27
ありがとうage
29名無しさん@お腹いっぱい。
垢版 |
NGNG
>>26
対話的利用時の設定は、
PS1が設定されている場合だけ行うのが、Bourne系shellの流儀です。

if [ ${PS1:-not_interactive} = not_interactive ]; the
対話的利用時の設定(alias,completeなど)
fi

こうしないと別の人間が/のscriptを使った時に、
aliasの設定等により別の動作をしてしまう可能性があります。

bashは、$-にiが含まれていても対話的利用と分かります。
NGNG
>>29
> bashは、$-にiが含まれていても対話的利用と分かります。

$-かぁ。知らなかった。
NGNG
>>29
> こうしないと別の人間が/のscriptを使った時に、

#! /bin/bashのscriptを使った時に、

の編集ミスね。
NGNG
誰か >>10
> と真似してみたところディレクトリは補完されないようです
を解決する関数を書いた人はいませんか? いたらウプして下さい。
bash-completion-20020306 を試してみたけどなさそうです。
3332
垢版 |
NGNG
誰も反応してくれないので自分で書いたよ。
もっとシンプルに書けんもんかのう…せめて関数にパターンが渡せれば。
いちいち関数定義なんかしてられんよ。

_gs()
{
local cur
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $( compgen -d -- $cur ) \
$( compgen -f -X '!*.@(?(e)ps|?(E)PS)' -- $cur ) )
return 0
}
complete -F _gs -o filenames gs ghostview

NGNG
halt
35名無しさん@お腹いっぱい。
垢版 |
NGNG
reboot
NGNG
login:
NGNG
login: root
Password:
38名無しさん@お腹いっぱい。
垢版 |
NGNG
/sbin/shutdown -r now
NGNG
login:
40名無しさん@お腹いっぱい。
垢版 |
NGNG
>>32
おれももディレクトリを補完できないで悩んでいたんだ。ありがとう。
33を試させてもらいます。
4140
垢版 |
NGNG
ずいぶん返事が遅れてすまぬ。
33でうまくいってます。
しかし33のいうとおり一つ一つ関数定義するのメンドイね。
何かいい方法ないかな?
NGNG
bashがよくわ<tab>
43名無しさん@お腹いっぱい。
垢版 |
NGNG
>>42
% bashがよくわ<tab>
からない かる かりたい らう
% bashがよくわ_
NGNG
英語がよくわ<tab>
NGNG
% 英語がよくわ<tab>
たしを苦しめる
% 英語がよくわ_
46名無しさん@お腹いっぱい。
垢版 |
NGNG
$ tcshやzshはどうして<Ctrl-D>
で保管をリスティングするのだろう?
$ tcshやzshはどうして

$ promptを%<tab>
って書いている奴は本当にbash使ってるのかと(略
$ promptを%
NGNG
俺zshだけど%使ってる。
48名無しさん@お腹いっぱい。
垢版 |
NGNG
bashでtcshみたいに
$ s
って入力してから履歴見ると
履歴の中で「s」で始まるのだけ表示してくれるようにって出来る?
NGNG
>>46
コマカイコトイウナヨーオマエ
NGNG
>>46
% 俺は途中乗|<tab>
換でbash使い始めたけど$は落ち着かないから%にしてる
% 俺は途中乗|
% |
% う|<tab>
うるせーばか
% う|
NGNG
「bashがマルチバイト文字に正式対応」
http://slashdot.jp/article.pl?sid=02/07/22/1936207

これって日本語のファイル名とかもlsで表示できるってこと?
NGNG
こういう時はageたほうがいいような。

よくわからんのでさっそく2.05bをいれてみたんだが、行の折り返しで化ける問題
もマルチバイト文字を2文字として認識してる問題も、まるっきり変わってない
ような気が。
buildの仕方に問題あったのかなあ。

あ、でも補完機能すごいね。
補完リストが1画面分より長いと、途中で止めてくれるわ。これは便利かも。

NGNG
いっしょに話題になったreadlineをインスコした。
readlineを使ったプログラム、うちの場合はPostgreSQLの
フロントエンドpsqlなのだが、ロケールの設定を日本語に
しておくと、漢字部分でのカーソル移動がちゃんと2文字分
になってて、削除も漢字1文字ごとやってくれる。
多分新Bashもこんな感じなのかな。psqlではおかげで
日本語レコードの操作が楽になったので新Bashでは
ターミナルでのマルチバイト処理がしやすくなってる
と推測。あくまで推測 (w
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況