|
3 | 3 | helpname: 'cmdline'
|
4 | 4 | ---
|
5 | 5 | <div id='vimCodeElement'>
|
6 |
| -<a class="Constant" href="cmdline.html" name="cmdline.txt">cmdline.txt</a> For <span class="Identifier">Vim バージョン 9.1.</span> Last change: 2025 Aug 08<br> |
| 6 | +<a class="Constant" href="cmdline.html" name="cmdline.txt">cmdline.txt</a> For <span class="Identifier">Vim バージョン 9.1.</span> Last change: 2025 Sep 10<br> |
7 | 7 | <br>
|
8 | 8 | <br>
|
9 | 9 | <span class="Identifier">VIMリファレンスマニュアル by Bram Moolenaar</span><br>
|
|
24 | 24 | 5. Exコマンドラインのフラグ <a class="Identifier" href="cmdline.html#ex-flags">ex-flags</a><br>
|
25 | 25 | 6. Exコマンド用の特別な文字 <a class="Identifier" href="cmdline.html#cmdline-special">cmdline-special</a><br>
|
26 | 26 | 7. コマンドラインウィンドウ <a class="Identifier" href="cmdline.html#cmdline-window">cmdline-window</a><br>
|
| 27 | +8. コマンドラインの自動補完 <a class="Identifier" href="cmdline.html#cmdline-autocompletion">cmdline-autocompletion</a><br> |
27 | 28 | <br>
|
28 | 29 | <span class="PreProc">==============================================================================</span><br>
|
29 | 30 | 1. コマンドラインの編集 <a class="Constant" href="cmdline.html#cmdline-editing" name="cmdline-editing">cmdline-editing</a><br>
|
|
390 | 391 | マッチするヘルプ項目の個数には上限がある(現在のところは 300)。非常に多くのマッ<br>
|
391 | 392 | チがあったとき、遅くなるのを避けるためである。<br>
|
392 | 393 | <br>
|
| 394 | +(<span class="Special"><Tab></span> 等のキーを押さずに) 入力時に自動補完を行う場合、<br> |
| 395 | +<a class="Identifier" href="cmdline.html#cmdline-autocompletion">cmdline-autocompletion</a> を参照。<br> |
| 396 | +<br> |
393 | 397 | 補完に使えるコマンドは以下の通り。<br>
|
394 | 398 | <br>
|
395 | 399 | <a class="Constant" href="cmdline.html#c_CTRL-D" name="c_CTRL-D">c_CTRL-D</a><br>
|
|
453 | 457 | ある。以前のバージョンでは <span class="Special"><Esc></span> が使われていた)。パターンがファイル名に対して<br>
|
454 | 458 | 適用されるときは標準の <a class="Identifier" href="editing.html#wildcards">wildcards</a> が使用できる。<br>
|
455 | 459 | <br>
|
456 |
| -<a class="Identifier" href="builtin.html#wildtrigger()">wildtrigger()</a> も参照。<br> |
457 |
| -<br> |
458 | 460 | <a class="Type" href="options.html#'wildchar'">'wildchar'</a> または <span class="Special">CTRL-N</span> を繰り返すとマッチしたものの始めから終わりまでを循環<br>
|
459 | 461 | して、最終的には入力されたものに戻る。最初のマッチが望むものでないなら、入力し<br>
|
460 | 462 | たものにまっすぐに戻るために <span class="Special"><S-Tab></span> または <span class="Special">CTRL-P</span> を使うことができる。<br>
|
|
1277 | 1279 | <div class="helpExample"> :au CmdwinEnter [/\?] startinsert</div>
|
1278 | 1280 | こうすれば、コマンドラインウィンドウではVimは挿入モードに移る。<br>
|
1279 | 1281 | <span class="Todo">Note</span>: これは <a class="Identifier" href="autocmd.html#file-pattern">file-pattern</a> なので、"?" をエスケープする必要がある。<br>
|
1280 |
| -<span class="MissingTag">cmdline-autocompletion</span> も参照。<br> |
| 1282 | +<a class="Identifier" href="cmdline.html#cmdline-autocompletion">cmdline-autocompletion</a> も参照。<br> |
1281 | 1283 | <br>
|
1282 | 1284 | <a class="Constant" href="cmdline.html#cmdwin-char" name="cmdwin-char">cmdwin-char</a><br>
|
1283 | 1285 | パターンに使われる文字は、コマンドラインの種類を表す。<br>
|
|
1289 | 1291 | @ 関数 <a class="Identifier" href="builtin.html#input()">input()</a> に対して入力する文字列<br>
|
1290 | 1292 | - コマンド <a class="Identifier" href="insert.html#:insert">:insert</a> や <a class="Identifier" href="insert.html#:append">:append</a> に対して入力する文字列<br>
|
1291 | 1293 | <br>
|
| 1294 | +<span class="PreProc">==============================================================================</span><br> |
| 1295 | +8. コマンドラインの自動補完 <a class="Constant" href="cmdline.html#cmdline-autocompletion" name="cmdline-autocompletion">cmdline-autocompletion</a><br> |
| 1296 | +<br> |
| 1297 | +自動補完は、入力中に検索 (/ または ?) やコマンド入力 (:) の際に自動的に候補の<br> |
| 1298 | +ポップアップメニューを表示することで、コマンドラインの操作をより効率的かつ簡単<br> |
| 1299 | +にする。<br> |
| 1300 | +<br> |
| 1301 | +基本的な設定:<br> |
| 1302 | +<div class="helpExample"> autocmd CmdlineChanged [:\/\?] call wildtrigger()<br> |
| 1303 | + set wildmode=noselect:lastused,full<br> |
| 1304 | + set wildoptions=pum</div> |
| 1305 | +<br> |
| 1306 | +この設定では、すぐに候補が表示され、<span class="Special"><Tab></span> キーまたは矢印キーを使用して候補間を<br> |
| 1307 | +移動できる。<br> |
| 1308 | +<br> |
| 1309 | +<span class="Special"><Up></span>/<span class="Special"><Down></span> による通常のコマンドライン履歴ナビゲーションを維持するには:<br> |
| 1310 | +<div class="helpExample"> cnoremap <expr> <Up> wildmenumode() ? "\<C-E>\<Up>" : "\<Up>"<br> |
| 1311 | + cnoremap <expr> <Down> wildmenumode() ? "\<C-E>\<Down>" : "\<Down>"</div> |
| 1312 | +<br> |
| 1313 | +オプションは特定のコマンドラインにのみ適用することもできる。例えば、検索時のみ<br> |
| 1314 | +ポップアップメニューの高さを低くするには:<br> |
| 1315 | +<div class="helpExample"> autocmd CmdlineEnter [\/\?] set pumheight=8<br> |
| 1316 | + autocmd CmdlineLeave [\/\?] set pumheight&</div> |
| 1317 | +<br> |
| 1318 | +<span class="Statement">おまけ</span> <a class="Constant" href="cmdline.html#fuzzy-file-picker" name="fuzzy-file-picker">fuzzy-file-picker</a> <a class="Constant" href="cmdline.html#live-grep" name="live-grep">live-grep</a><br> |
| 1319 | +<br> |
| 1320 | +コマンドラインの自動補完は、高度な用途向けに拡張することもでる。<br> |
| 1321 | +例えば、ネイティブの <a class="Identifier" href="editing.html#:find">:find</a> コマンドを、あいまい検索が可能な対話型ファイルピッ<br> |
| 1322 | +カーに変えることができる:<br> |
| 1323 | +<br> |
| 1324 | +<div class="helpExample"> set findfunc=Find<br> |
| 1325 | + func Find(arg, _)<br> |
| 1326 | + if get(s:, 'filescache', []) == []<br> |
| 1327 | + let s:filescache = systemlist(<br> |
| 1328 | + \ 'find . -path "*/.git" -prune -o -type f -print')<br> |
| 1329 | + endif<br> |
| 1330 | + return a:arg == '' ? s:filescache : matchfuzzy(s:filescache, a:arg)<br> |
| 1331 | + endfunc<br> |
| 1332 | + autocmd CmdlineEnter : let s:filescache = []</div> |
| 1333 | +<br> |
| 1334 | +<span class="Comment">:Grep</span> コマンドは、パターンにマッチする行を検索し、入力すると結果を動的に更新<br> |
| 1335 | +する (2 文字後にトリガーされる。<span class="Todo">note</span>: 次のセクションの <a class="Comment" href="autocmd.html#CmdlineLeavePre">CmdlineLeavePre</a> 自動<br> |
| 1336 | +コマンドが必要である):<br> |
| 1337 | +<br> |
| 1338 | +<div class="helpExample"> command! -nargs=+ -complete=customlist,<SID>Grep<br> |
| 1339 | + \ Grep call <SID>VisitFile()</div> |
| 1340 | +<br> |
| 1341 | +<div class="helpExample"> func s:Grep(arglead, cmdline, cursorpos)<br> |
| 1342 | + let cmd = $'grep -REIHns "{a:arglead}" --exclude-dir=.git<br> |
| 1343 | + \ --exclude=".*"'<br> |
| 1344 | + return len(a:arglead) > 1 ? systemlist(cmd) : []<br> |
| 1345 | + endfunc</div> |
| 1346 | +<br> |
| 1347 | +<div class="helpExample"> func s:VisitFile()<br> |
| 1348 | + let item = getqflist(#{lines: [s:selected]}).items[0]<br> |
| 1349 | + let pos = '[0,\ item.lnum,\ item.col,\ 0]'<br> |
| 1350 | + exe $':b +call\ setpos(".",\ {pos}) {item.bufnr}'<br> |
| 1351 | + call setbufvar(item.bufnr, '&buflisted', 1)<br> |
| 1352 | + endfunc</div> |
| 1353 | +<br> |
| 1354 | +コマンドラインを終了するときに補完リストの最初の項目を自動的に選択し、<span class="Comment">:Grep</span><br> |
| 1355 | +の場合は入力したパターンをコマンドライン履歴に追加する:<br> |
| 1356 | +<br> |
| 1357 | +<div class="helpExample"> autocmd CmdlineLeavePre :<br> |
| 1358 | + \ if get(cmdcomplete_info(), 'matches', []) != [] |<br> |
| 1359 | + \ let s:info = cmdcomplete_info() |<br> |
| 1360 | + \ if getcmdline() =~ '^\s*fin\%[d]\s' && s:info.selected == -1 |<br> |
| 1361 | + \ call setcmdline($'find {s:info.matches[0]}') |<br> |
| 1362 | + \ endif |<br> |
| 1363 | + \ if getcmdline() =~ '^\s*Grep\s' |<br> |
| 1364 | + \ let s:selected = s:info.selected != -1<br> |
| 1365 | + \ ? s:info.matches[s:info.selected] : s:info.matches[0] |<br> |
| 1366 | + \ call setcmdline(s:info.cmdline_orig) |<br> |
| 1367 | + \ endif |<br> |
| 1368 | + \ endif</div> |
| 1369 | +<br> |
| 1370 | +挿入モードでの自動補完については、<a class="Identifier" href="insert.html#ins-autocompletion">ins-autocompletion</a> を参照。<br> |
| 1371 | +<br> |
1292 | 1372 | vim:tw=78:ts=8:noet:ft=help:norl:<br>
|
1293 | 1373 | </div>
|
0 commit comments