肉Bashでは、ディレクトリだけを完了してください。

肉Bashでは、ディレクトリだけを完了してください。

vi私が入力したディレクトリでtab(2回)これは私に提供されます

user$ vi 
CMakeFiles/ global/     libs/

そしてls2tab秒が私に与えられた

user$ ls 
! core.log CMakeFiles/ global/     libs/ _jni/

(ノート:lsのエイリアスは "ls -Ah --color = auto"です。、_jniはシンボリックリンクで、隠しファイルはありません。 )

viタブの完了中はファイルが表示されず、ディレクトリのみが表示されるようです。なぜこれが起こるのですか?viと同じように動作させるにはどうすればよいですかls? SEで記事を検索した後、~/.vimrcに次の行を追加しました。しかし、この場合は何もしないようです。

set wildmode=longest,list,full
set wildmenu

バージョンvi:VIM - Vi改良バージョン7.3.429
バージョンls:ls(GNU coreutils)8.13

答え1

ArchiLinuxでも同じ問題が発生しましたが、結局完成機能の問題であることがわかりました。

complete -r vimコンプリッタを削除するために使用されます。 (またはbashrcにこの行を入れてください)

答え2

この動作は ls コマンドや vi バイナリと直接関係しません。代わりに、シェルのタブ補完機能によって制御されます。 Linuxでbashを使用している場合は、完成を実装する/etc/bash_completion方法に関する完全な規則が既にわかっています/etc/bash_completion.d/*

答え3

ファイルで次のような行を確認してください/etc/bash_completion

complete -f -X '*.@(o|so|so.!(conf)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite

シェルでこのコマンドを実行します。または、ファイルに上記の行を追加し、/etc/bash_completion次を実行します。

bash /etc/bash_completion

関連情報