Vi & Vim

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

2
同じセッションでLinuxシステムでVimでpythonとpython3の両方を実行できるようにするにはどうすればよいですか?
Linuxシステムでは、パッケージ化されVimは一般的に一つだけのいずれかを持っているpythonか、python3有効になって。ことが可能であるの両方を有効にする(使用するpython/dynとpython3/dyn)が、セッション中に、一つだけを使用することができます。このメーリングリストの議論は次のように述べています。 Pythonライブラリの構築方法に依存します。Debianベースのシステムでは(理由は覚えていません)、RTLD_GLOBALを使用してシンボルにアクセスする必要があるように構築されています。これにより、同じプロセスでlibpython2.xとlibpython3.xの両方がロードされなくなります。 同じセッションで両方のロードを有効にするために何ができますか? 私が見ることができるオプション: Python {2,3}パッケージを再構築して、RTLD_GLOBAL(それが何であれ)不要になるようにします。 どういうわけか、Vimによって以前にロードされたライブラリをアンロード(?!)するようにします。(それも可能ですか?) ディストリビューションの詳細については、特異性の昇順で想定してください。 Debianベース Ubuntu Ubuntu 14.04 または、Debianベースのシステムが複雑すぎる場合はArch Linux。 私がしていることを注意ビルドにVimを得た Vimを構築することは問題ではありませんので、両方のための動的ローディングをサポートしました。

5
ドキュメントにUnicode文字を挿入する最も簡単な方法は何ですか?
時々文書を書くとき、テキストにUnicode文字を挿入したいです。文字コードを知っているときもあれば、Webで調べるときもあります。 現在、挿入モードに移動してからを使用<Ctrl-V>u{four digit hex number}していますが、これは非常に面倒です。文字を挿入する簡単な方法はありますか(おそらく何らかの形式の貼り付け)?

4
テーブルを簡単に作成および保守するにはどうすればよいですか?
これは、いくつかのドキュメントで使用している表の一部です: +---------------+------------------------+---------------------------------------+ | TASK NAME | WHEN | DESCRIPTION | +---------------+------------------------+---------------------------------------+ | db:seed | On every update | Data required for the application to | | | | run; you should always be able to | | | | safely execute this multiple times | | | | for an …

3
視覚的な選択内でのみ置換する方法は?
行のほかの場所ではなく、視覚的な選択範囲内の文字だけをvimに置き換えるにはどうすればよいですか?例: ライン: int arr[] = { 00 01 02 03 04 05 05 /* ... lots more like this*/}; 視覚的選択: { 00 01 02 03 04 05 05 /*... lots more like this*/} コマンド: :'<,'>s/\ /\,0x/g 期待される: int arr[] = {0x00,0x01,0x02,0x03 /* and so on*/}; ただし、これらのアクションを実行すると、実際の結果は次のようになります。 int,0xarr[],0x=,0x{0x00,0x01,0x02,0x03 /* and so …

3
なぜci "が引用された領域の外にあり、ci(が括弧内でのみ機能するのでしょうか?
ci"カーソルを使用する場合、二重引用符で囲まれた領域に存在する必要はありません。 |String somestring = "some text"; パイプがカーソル位置であるci"と仮定すると、引用された領域にジャンプします。 一方、を使用するci(場合、カーソルは括弧内にある必要があり、括弧内でカーソルを移動しません。 この動作の違いの理由は何ですか?この動作が存在するようにキーをマップする方法があると思います。これを行うことに欠点はありますか?

8
空白以外の文字に到達するまで垂直に移動するにはどうすればよいですか?
(正確に)インデントされたコードを持つ非常に長いファイルでは、インデントを区切るカーソルの上下のテキスト行に直接移動すると役立つ場合があります。 (これを行う1つの方法は、インデントfoldメソッドを使用することです。現在のインデントレベルを折り畳むことにより、インデントレベルを区切る行をカーソルからjまたはそれ以外にk折り畳みます。興味のあるインデントで作業することができました。) 下の例では、カーソルがアンダースコア_(との定義の間の2番目の文字列)でマークされていますが、s 内の段落または行の数が不明または可変であるclass Bazzとclass Qux想像してくださいmodule。 module Foo # lots of code... end module Bar class Baz # ... end class Bazz # lots of code... end _ class Qux # ... end class Quux # lots of code... end end ... カーソルoのmodule Bar上の行、または最後の行のカーソルnのend下の行にすばやく移動するにはどうすればよいですか?垂直列には空白が含まれていますが、class定義間の2番目の列には文字が含まれていないことに注意してください。

5
非常に大きなファイルを良好なパフォーマンスで開くにはどうすればよいですか?
サイズが数ギガバイトのサーバーログファイルがあります(Ubuntu上)。ファイルを開こうとすると、ファイルがVimにロードされている間、端末が1分ほどロックします。たとえば、Vimをオンデマンドでファイルをロードするように設定したり、他の方法でこの時間を短縮する方法はありますか?

1
VUNDLEでNERDTreeをインストールする方法は?
私はVimを使い始めており、Pathogenの代わりにVundleを選択しました。 Vundleを使用してNERDTreeをインストールできるかどうか知りたいです。 Vimを起動して、次のようにNERDTreeを検索しています。 :BundleSearch NERDTree ただし、プラグインは見つかりません。 "Keymap: i - Install plugin; c - Cleanup; s - Se| arch; R - Reload list |~ "Search results for: NERDTree |~ Plugin 'nerdtree-ack' |~ Plugin 'FindInNERDTree'


2
書き込み権限がないファイルを保存する方法は?
時々、ファイルを開いて、自分のユーザーとして、[read-only]ステータス行の警告に気付かないか、「忘れる」ことなく、いくつかの変更を加えることがあります(例:の/etcようなランダムな構成ファイル/etc/resolv.conf)。 :w!私のユーザーには書き込み権限がないため、この場合は明らかに失敗します。だから:w /home/filename、終了しsudo mv ...、非常に不快でなければなりません。 現在開いているファイルを保存できるように一時的にルートにエスカレーションする方法はありますか?(私がいるsudoers/またはsu直接できる場合)?

6
Python 3のVimコード補完
Debian Jessieを実行しており、現在のvim-noxを使用しています(+ python -python3を使用)。Python 3のコード補完に苦労しているため、Python 3でプログラミングしようとすると苦労しています。 YouCompleteMeはPython3をまったくサポートしていません。jedi-vimはPython 3補完をサポートしますが、+ python3オプションを正しく理解している場合に限ります。Debian開発者からのいくつかの投稿から、Vimを+ python3フラグでコンパイルすることは実際には機能していないようです。そのため、python-modeプラグインが残っています。 python-modeがメンテナンスされていないように見えること(open pull-requestsとlast commitsを参照)と、現在masterブランチのロープに関する大きなバグがあるという事実に加えて、YouCompleteMeに干渉します。YouCompleteMeを完全に無効にした場合にのみ、Python 3のコード補完を機能させることができます。PythonファイルタイプのYCMをブラックリストに登録したり、PythonファイルのYCM補完を無効にしたりしても、vimを開くたびにYCM警告が表示されます。 だから私の質問は: YouCompleteMeを非アクティブ化せずに、現在のDebianディストリビューションでPython 3オートコンプリートを動作させるにはどうすればよいですか(他のプログラミング言語で使用したいのですが)。メンテナンスされていないプラグインが、このような重要なプログラミング言語のコード補完のために現時点で唯一の選択肢であるのはなぜですか(Python 3は新しいものとは見なされなくなりました)。

2
Vimの弾性タブストップ?
弾性タブストップを可能にするプラグインまたはVimの組み込み機能はありますか?少し調べてみたところ、Vimでは不可能だと言っている参考文献をいくつか見つけましたが、それらはかなり古いものでした。 Vimに伸縮性のあるタブストップを設定する方法はありますか?Neovimのソリューションでも大丈夫です。とにかくそれを使用しています。

3
正規表現を使用して検索および置換
多くのユーザーのデフォルトが入ったファイルがあります。テキストの一部を変更したいのですが、マッチャーとリプレースメントの作成に苦労しています。次の例を使用します。 ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user and for the login screen defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true 私は交換したい# Trackpad: ...とrunning "Trackpad: ..." 問題を分解して、正規表現テスターを使用して何かを思い付きました: /\n\n#\s(.*)/g Vimでこれを使用しようとすると、うまくいきません。 :/\n\n#\s(.*)/running "\1"/g 私の問題は、具体的には次の2つの質問に要約されると思います。 \n文字の検索を回避し、代わり#に検索グループの最後に表示されないようにするにはどうすればよいですか? キャプチャグループを効果的に使用するにはどうすればよいですか? 以下にいくつかの素晴らしい答えがあります。3つすべてから選択するのは難しいですが、選択した答えが私の元の仕様にとって最も正確であると感じています。実際のファイルで 3つの回答すべてを試して、それらについてどのように感じているかを確認することをお勧めします。

2
ビジュアルモードで置換コードをブロックする方法
最初の2文字を置き換えるアイテムのリストがあります。 a) item 1 b) item 2 c) item 3 これを行う最も速い方法は何ですか: * item 1 * item 2 * item 3 視覚モードを使用したアプローチがあります(Ctr-v、jjj、2つの置換コマンドを実行する必要があります。Iirc、この置換は1コマンドで実行できます)

5
JSONファイルをVimでフォーマットする方法
大きなJSONオブジェクトがすべて1行に含まれるファイルがあるとします。 {"versions":[{"count":2,"version":""},{"count":1,"version":"1.1.1"},{"count":14,"version":"2.9"},{... これをVimで人間が読めるようにフォーマットするにはどうすればよいですか?

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