2012-05-25 26 views
39

Vim lưu trữ danh sách các lệnh mà chúng tôi đã áp dụng bằng cách sử dụng: cho thực thi hiện tại. Nhưng khi tôi đóng vim và bắt đầu lại, lịch sử lệnh vim bị mất. Tôi đã thử set history = 1000 trong tệp .vimrc nhưng điều đó không giúp ích gì.
Vim duy trì lịch sử lệnh cục bộ ở đâu?
Lệnh để giữ lại lịch sử lệnh là gì?
Lịch sử bản ghi Vim

+1

Hoạt động tốt trên hệ thống của tôi, bạn đang chạy phiên bản vim nào? – Stefan

+0

làm việc tốt trên hệ thống desktio của tôi .. phiên bản 7.3 nhưng nó không hoạt động trên lappy của tôi. thậm chí phiên bản đó là 7.3, tôi đoán là –

+0

Tôi vừa kiểm tra '.vimrc', không có cài đặt liên quan đến lịch sử lệnh… lịch sử lưu có vẻ là mặc định. – Stefan

Trả lời

19

Để kiểm tra xem Vim có hỗ trợ tệp 'viminfo' (lưu trữ lịch sử), :echo has('viminfo') hay không. Cài đặt tương ứng không được để trống: :set viminfo?:set history? phải lớn hơn một.

Nếu có một vấn đề bằng văn bản cho tập tin viminfo (mặc dù Vim nên phàn nàn trong trường hợp đó), bạn có thể thử qua một địa điểm khác nhau thông qua vim -i /tmp/viminfo

+4

thật lạ khi tôi không có quyền ghi vào '~/.viminfo' và vim không thông báo cho tôi. – Amir

+6

wtf, ~/.viminfo của tôi là root: root hoàn toàn không có lý do gì và vim cũng không phàn nàn! – vak

1

Bạn sẽ phải đặt tùy chọn viminfo. Đặt nó trong bạn $ MYVIMRC

Cập nhật Để tìm ra nơi các tùy chọn đã thiết lập cuối cùng/thay đổi:

:verbose set viminfo? 

Xem http://vimdoc.sourceforge.net/htmldoc/starting.html#viminfo-file

Nếu bạn thoát khỏi Vim và sau đó bắt đầu nó một lần nữa, bạn thường sẽ mất rất nhiều thông tin . Tập tin viminfo có thể được sử dụng để ghi nhớ thông tin đó, trong đó cho phép bạn tiếp tục từ nơi bạn đã dừng lại.

Điều này được giới thiệu trong phần | 21.3 | của hướng dẫn sử dụng.

Các tập tin viminfo được sử dụng để lưu trữ:

  • Lịch sử dòng lệnh.
  • Lịch sử chuỗi tìm kiếm.
  • Lịch sử dòng đầu vào.
  • Nội dung của các thanh ghi không trống.
  • Đánh dấu cho một số tệp.
  • Dấu tệp, trỏ đến vị trí trong tệp.
  • Mẫu tìm kiếm/thay thế cuối cùng (cho 'n' và '&').
  • Danh sách bộ đệm.
  • Biến toàn cục.

Tệp viminfo không được hỗ trợ khi | + viminfo | tính năng đã bị vô hiệu hóa lúc biên dịch.

Bạn cũng có thể sử dụng Session tệp.

69

Chỉ cần một vấn đề mà bắt tôi ra vào ngày hôm khác, mà có thể hoặc có thể không phải vấn đề của bạn:

Trên một số hệ thống Linux (ví dụ: Ubuntu), nếu lần đầu tiên bạn chạy VIM, bạn chạy nó dưới dạng siêu người dùng, thì tệp $ HOME/.viminfo được tạo với chủ sở hữu gốc và người dùng cục bộ của bạn không có quyền ghi vào nó.Điều này giải thích tại sao VIM của tôi không lưu trữ lịch sử lệnh khi tất cả được cấu hình đúng.

Dòng dưới cùng: trên hệ thống * nix, định vị tệp .viminfo của bạn và đảm bảo bạn có quyền đọc/ghi trên đó.

+2

Siêu! Cảm ơn một nhà máy cho rằng Balint tip! –

9

Bạn nên kiểm tra quyền của tệp .viminfo. Bạn có thể cần phải thay đổi chủ sở hữu của tệp cho người dùng hiện tại của mình bằng cách sử dụng chown hoặc sudo chown.

+0

Đây là vấn đề của tôi. Nó được mặc định là root. – felwithe

4

Ông Baint đã đưa ra câu trả lời.

  • Đi tới thư mục $HOME.
  • cung cấp cho ls -l .viminfo để kiểm tra quyền.
  • quyền thay đổi để nhóm và chủ sở hữu cũng có thể viết giấy phép . sử dụng:

    sudo chown yourUserId $HOME/.viminfo 
    

Cần khắc phục vấn đề.

Các vấn đề liên quan