Vi & Vim

テキストエディタのviおよびVimファミリを使用している人のためのQ&A

1
ビジュアルモードでコマンドをマッピングすると、エラーE481が発生する
選択したブロックを開いたNeovim端末に送信するキーボードバインディングをNeovimで作成しようとしています。これらの回答をガイドラインとして使用しましたhttps://vi.stackexchange.com/a/3390/3405 https://stackoverflow.com/a/6271254/859391 Visual Lineを選択してコマンドを呼び出そうとすると、No Range Allowedエラーが発生し続けます。私は明白な何かを見逃していますか? function! s:get_visual_selection() " Why is this not a built-in Vim script function?! let [lnum1, col1] = getpos("'<")[1:2] let [lnum2, col2] = getpos("'>")[1:2] let lines = getline(lnum1, lnum2) let lines[-1] = lines[-1][: col2 - (&selection == 'inclusive' ? 1 : 2)] let lines[0] = lines[0][col1 …

3
複数のマシン間でvimスペルチェックの追加を共有するにはどうすればよいですか?
vimのスペルチェック機能を使用しています。私は多くの専門用語とLaTeXコマンドを扱っているので、それらの多くをの個人用辞書に追加する傾向があります~/.vim/spell/en.utf-8.add。 このファイルを複数のマシンで共有したいので、1つのマシンでファイルに単語を追加すると、他のマシンでも単語が追加され、各マシンで1回追加する必要がなくなります。私~/.vim/spell/en.utf-8.addはgitでバージョン管理を試みましたが、これは機能していないようです:vimは新しい用語を取得しません。vimもen.utf-8.add.spl何らかの形でファイルを編集する必要があると思いますが、このファイルはバイナリであるため、バージョン管理を行うと競合が発生する可能性があります。 ここの誰もが、設定の一部としてvimスペルチェック辞書を追加し、すべてのマシン間でそれらを同期するための満足できるソリューションを持っていますか?


1
vimで指定された文字列で始まる行を検索しますか?
私はこのコードスニペットを持っています: # import ipdb; ipdb.set_trace() def foo(): ... import ipdb; ipdb.set_trace() ... # import ipdb; ipdb.set_trace() コメントされていないipdb行のみが検索されるように、検索クエリを指定するにはどうすればよいですか? コマンドは次のようになると思います: /import ipdb/(line start flag)

4
個人用ランタイムパスの環境変数?(* nixでは〜/ .vim、win32では〜/ vimfiles)
複数のマシン間でよりきれいに同期するために、.viminfoファイルを.vim/フォルダーに移動しようとしています。(.vimDropboxに保存して、ホームディレクトリからそこへのシンボリックリンクを作成します。) それで今朝、私はそれをどのように行うかについてこの答えを見つけました。すごい!残念ながら、私は職場でWindowsを使用し、自宅でMacを使用しているため~/.vim、実際には時々使用してい~/vimfilesます。その結果、1行のソリューション set viminfo+=n~/.vim/viminfo 5行のソリューションになりました if has('unix') set viminfo+=n~/.vim/viminfo elseif has('win32') set viminfo+=n~/vimfiles/viminfo endif それは私にとって不器用に感じます。 私はラA、ユーザ固有のランタイム・パスにアクセスするために使用できるデフォルトの環境変数のいくつかの種類がある$VIMRUNTIMEかは$MYVIMRC?それとも私が踊る必要があるのですか?
9 vimrc 

1
Enterをクイックフィックス以外のカスタムコマンドにマップする方法
折りたたみをすばやく開閉できるように、再マップ<cr>(Enter)しましたza。 ただし、クイックフィックスウィンドウを使用してEnterキーを押すと、エラーのある行にジャンプしなくなりました(クイックフィックスウィンドウに存在しない折り畳みを開閉しようとしているため)。 クイックフィックスウィンドウに入るときに、マッピングを無効にするか、ローカルで再設定する方法はありますか?

2
文の最後の文字に移動するにはどうすればよいですか?
通常モードで(と)、それぞれの文の前のまたは次の最初の文字に移動します。最後のキャラクターに移動するにはどうすればよいですか。 すべての文がピリオド)T.(次の文の最初の文字、最初のピリオドに戻る)で終わる場合、マクロで使用するより堅牢なソリューションが必要です。 私はビジュアルモードで動作していることを知ってasおりis、動作しますvis<ESC>(ビジュアルモード、文の内部を選択して、ビジュアルモードを終了します)。 私は途方に暮れています。助けて!


4
.c / .hバッファーの切り替え
私は通常、垂直に分割された2つのウィンドウで作業します。 私が解決したい問題は、ヘッダー<->実装ファイルから簡単に前後にジャンプすることです 私は運がなければ、これを行う2つの方法を調査しています: 現在のウィンドウで別のファイルを開く:これを行う方法はたくさんありますが、前のファイルのどこにいたかを覚えておく方法が見つかりません(つまり、ヘッダーにジャンプしたり、戻ったりしますが、以前と同じ場所にジャンプすることはできません) )。 別のウィンドウで別のファイルを開く:これは明確に定義されています。これは、2つのウィンドウでしか作業しないためですが、これを行うためのvim-knowledgeが不足しています。


1
アドレスで複数行を削除
私はこのvimgolfチャレンジを見ていて、アドレスで特定の行を削除するのは良いことだと思いました。でこれを実行できることはわかって:<line_number>dいますが、d実行するために複数の行番号をリストする方法はありますか?私はこのようなものを想像します::1,4,32dもちろん、それは機能しません。 これはどのように行われますか?

1
:g / ^ / normおよび:%normによるラインリファレンスの違いの理解
次の非常に単純なファイルがあるとしましょう a b c d e そして、各行の後に空行を追加することにしました。いくつかの異なる方法がすぐに思い浮かびます。私たちはそれをするだけかもしれません(したがって、失敗を受け入れます)。のようなマクロを記録し、qqo<ESC>jqそれを数回繰り返す場合があります。 当時、私には他の2つの方法がより明白に思えました。 まず、:normコマンドoを各行に発行すると思いました。だから私は走る:%norm o。しかし、実際に何が起こるかというと、5行の空白行があり、その後に上記の分離されていない行が続きます。私はこれを%norm、vimが実際にこの5行のファイルの最初の5行で次の通常のコマンドを発行してメッセージを取得することを意味すると解釈します。oコマンドは、新しい行を作成し、vimのは、それはいくつかの他の識別子によって、実際に行番号で参照していないという意味で「ダム」です。 さて、恥ずかしかったです。承知しました。上記の方法が機能するかどうかを確認するために、他にもいくつか試してみましたが、残念ながらできませんでした。好奇心から、私は他のお気に入りの大量適用方法を試しました。これは私を試してみました:g/^/norm o。驚いたことに、これはうまくいきます!だから私の目には、vimは上記と同じようにここでは「ダム」ではなく、単に行番号だけではなく行を参照しているようです。 正確には何が起こっているのですか?

1
単語を珍しいものとしてマークするにはどうすればよいですか?
Vimにはコマンドがzgありzw、単語を良い(正しいスペル)または悪い(誤ったスペル)としてマークします。単語をめったに使用されないものとしてマークする同様のコマンドはありますか? (単語plus /?をスペルファイルに手動で追加することは可能ですが、これはカーソルを単語の上に置いていくつかのキーを入力するよりもはるかに不便です。)

1
コマンドプロンプトの '<、'>
たまに:入力してファイルを終了したり書き込んだりすると、:'&lt;,'&gt;何も入力しなくてもプロンプトにすでに文字が含まれています。私が入力した場合には、エラーの原因となりますwかq。この問題は再現できません。それは最も奇妙な時に起こり、私はそれを引き起こしている原因を特定することができませんでした。 私が誤って入力していq:たので:qはなく、終了に問題があったことを理解するのに、私は永遠にかかりました。その小さな癖について知ったので、この他の動作の原因を突き止めようとしています。誰かの大佐の命令のどこかで見たのですが、何も見つかりません。 これは予想される動作ですか?何が原因ですか?

2
.vimrcのファイルエンコーディングとは何ですか?
vimをアップグレードしましたが、私のの一部のUTF-8値に不満を感じてい.vimrcます。 これは私に質問を導きました-vimがを読むとき.vimrc、それはファイルがどんなエンコーディングを持っていると仮定しますか?つまり、何fileencodingですか?
8 vimrc  encoding 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.