Câu trả lời:
Tính năng này được thực hiện dưới dạng tự động. Nó được thiết lập trong /etc/vimrc
- xem đoạn trích dưới đây. Xóa nó khỏi đó hoặc thêm lệnh để xóa autocommand đó vào tệp vimrc của bạn. (Tôi đang sử dụng fedora - trên rrc nó sẽ rất giống nhau)
if has("autocmd")
augroup fedora
autocmd!
"...
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
"...
augroup END
endif
Nếu bạn không có quyền hoặc không muốn thay đổi /etc/vimrc
, lệnh đặt địa phương của bạn .vimrc
để xóa tự động là
:au! <group> <cmdname>
, trong trường hợp này :au! fedora BufReadPost
.
Đây là một nhận xét nhiều hơn là một câu trả lời thực sự. Solaris không phải là một bản phân phối Linux. Nó là một phiên bản của hệ điều hành Unix. vi trên RedHat là bản phân phối Linux (Linux! = Unix) được liên kết tượng trưng với vim. Solaris vi dùng để chỉ trình soạn thảo vi chính hãng được tạo bởi Bill Joy. Vì vậy, chúng tôi không nói ở đây về các biên tập viên tương tự. Tôi không biết vim hành xử như thế nào khi tôi sử dụng nvi trên hộp OpenBSD của tôi, một bản sao khác của vi chính hãng. Tôi sẽ đề nghị bạn cài đặt trình soạn thảo vi trên hộp RedHat của bạn trước và thử tái tạo vấn đề. Nhập văn bản vi filename.txt
nên mở tệp và đặt lời nhắc tại cầu xin của dòng đầu tiên. Gõ vi + filename.txt
nên mở tập tin ở dòng cuối cùng. Tuy nhiên, vi có thể được mở với nhiều tùy chọn khác như vi +n filename.txt
đặt bạn ở đầu dòng thứ n hoặcvi +/regexp filename.txt
trong đó đặt bạn ở đầu dòng chứa lần xuất hiện đầu tiên của biểu thức chính quy (regrec), view filename.txt
chế độ chỉ đọc. Vui lòng tham khảo các trang người đàn ông cho danh sách đầy đủ. Đừng quên hủy liên kết lệnh vi từ vim khi bạn cài đặt một vi thực.
Có thể có một số tùy chọn khác có sẵn cho việc này, nhưng bạn có thể sử dụng các công việc sau đây xung quanh
vim <filename> +1
+1
cho biết, để di chuyển con trỏ đến dòng 1.
line 2: E682: Invalid search pattern or delimiter
khi tôi đặt vim +1
vào .exrc của mình - tôi không muốn phải chỉ định một tệp, tức là tôi muốn nó được áp dụng cho bất kỳ tệp nào
vim * +1
vimrc
tập tin. Như đã đề cập đây là một công việc xung quanh.
Để đảm bảo, chức năng này được thêm bởi một plugin hãy thử mở tệp bằng
vim --noplugin <filename>
Nếu con trỏ không nhảy đến vị trí chỉnh sửa cuối cùng, bạn nên mở lại tệp mà không cần --noplugin
-chuyển đổi và nghiên cứu đầu ra của :scriptnames
. :scriptnames
liệt kê tất cả các tập lệnh có nguồn gốc trước đó.
Nếu bạn là người dùng vim bán kinh nghiệm, bạn có thể loại trừ hầu hết các tập lệnh bằng đường dẫn. Chẳng hạn, tất cả các tập lệnh nằm dưới &rtp/{ftplugin,spell,colors,syntax}
(& rtp: = runtimepath) đều không có vấn đề.
Tôi có thể tưởng tượng rằng tập lệnh thực hiện tính năng này có một tên liên quan.
Tôi đã có vấn đề ngược lại và kết quả là ở đây. Tôi đã tự hỏi tại sao con trỏ của tôi sẽ quay trở lại đầu tập tin. Tôi đã quen với việc chuyển đổi giữa các bộ đệm và phải tìm vị trí của mình mỗi lần sẽ không hiệu quả!
Không có câu trả lời nào ở đây nói về vấn đề này, vì vậy tôi nghĩ rằng tôi sẽ thêm câu trả lời của riêng mình, vì điều đó sẽ giải quyết vấn đề của bạn. Tất cả những gì tôi phải làm là thêm một nhận xét C hoặc C ++ trên dòng đầu tiên sau một khoảng trắng! Tôi không biết liệu đây có phải là một tính năng hay lỗi hay không, nhưng ... con trỏ sẽ quay lại ngay trên đầu trong trường hợp đó.
+---- see the space here?
|
v
// first line of file
Xóa bình luận hoặc không gian khắc phục vấn đề của tôi .
au! redhat BufReadPost
trong tôi~/.vimrc
nhưng nó vẫn thiết lập vị trí con trỏ đến vị trí cuối cùng. Cuối cùng, tôi chỉ cần đặt mộtcall cursor(1,1)
để buộc con trỏ ở đầu tập tin.