50

Vim は、現在の実行に対して : を使用して適用したコマンドのリストを保存します。しかし、vim を閉じて再起動すると、vim コマンドの履歴が失われます。.vimrc ファイルで試してみset history = 1000ましたが、役に立ちませんでした。
Vim はローカル コマンド履歴をどこに保持していますか?
コマンド履歴を保持するコマンドは何ですか?

4

6 に答える 6

78

先日私を捕らえた問題で、あなたの問題かもしれないし、そうでないかもしれません:

一部のLinuxシステム(Ubuntuなど)では、VIMを初めて実行するときにスーパーユーザーとして実行すると、$ HOME / .viminfoファイルがroot所有者で作成され、ローカルユーザーには書き込み権限がありません。それに。これは、すべてが正しく構成されているときにVIMがコマンド履歴を保存しなかった理由を説明しています。

結論:* nixシステムで、.viminfoファイルを見つけて、読み取り/書き込み権限があることを確認します。

于 2012-05-25T13:26:38.230 に答える
27

Vim が'viminfo'ファイル (履歴を保存するファイル) をサポートしているかどうかを確認するには、:echo has('viminfo'). 対応する設定を空にすることはできません: :set viminfo?:set history?1 より大きい必要があります。

viminfo ファイルの書き込みに問題がある場合 (その場合、Vim は文句を言うはずですが)、次の方法で別の場所を渡してみてください。vim -i /tmp/viminfo

于 2012-05-25T11:43:35.030 に答える
8

ファイルのパーミッションを確認する必要があり.viminfoます。chownまたはを使用して、ファイルの所有者を現在のユーザーに変更する必要がある場合がありますsudo chown

于 2014-01-30T07:03:06.113 に答える
6

Baint氏が答えを出しました。

  • ディレクトリに移動し$HOMEます。
  • ls -l .viminfo許可を確認するために与えます。
  • グループと所有者にも書き込み権限があるように権限を変更します。使用する:

     sudo chown yourUserId $HOME/.viminfo
    

問題を修正する必要があります。

于 2015-08-26T12:09:34.463 に答える
2

viminfoオプションを設定する必要があります。$MYVIMRCに設定します

更新オプションが最後に設定/変更された場所を見つけるには:

:verbose set viminfo?

http://vimdoc.sourceforge.net/htmldoc/starting.html#viminfo-fileを参照してください

Vimを終了して後で再開すると、通常、多くの情報が失われます。viminfoファイルを使用して、その情報を記憶することができます。これにより、中断したところから続行できます。

これはセクション|21.3|で紹介されています ユーザーマニュアルの。

viminfoファイルは以下を保存するために使用されます。

  • コマンドライン履歴。
  • 検索文字列の履歴。
  • 入力行の履歴。
  • 空でないレジスタの内容。
  • いくつかのファイルのマーク。
  • ファイル内の場所を指すファイルマーク。
  • 最後の検索/置換パターン(「n」および「&」の場合)。
  • バッファリスト。
  • グローバル変数。

| + viminfo |の場合、viminfoファイルはサポートされません。この機能はコンパイル時に無効になっています。

ファイルを使用することもできSessionます。

于 2012-05-25T11:39:21.993 に答える