Tôi đã tìm kiếm điều này rất nhiều và mọi câu trả lời là về Vim trong Linux. Có cách nào để lưu tệp chỉ đọc ngay từ Vim trong Windows không?
Tôi đã tìm kiếm điều này rất nhiều và mọi câu trả lời là về Vim trong Linux. Có cách nào để lưu tệp chỉ đọc ngay từ Vim trong Windows không?
Câu trả lời:
Giống như trên các phiên bản vi / vim khác, bạn có thể sử dụng :w!
để buộc ghi, miễn là bạn có quyền ghi đè lên thuộc tính chỉ đọc.
Ví dụ: nếu bạn đã đặt tệp ở chế độ chỉ đọc, phần trên sẽ hoạt động. Nếu chính Windows hoặc quản trị viên đã đặt nó ở chế độ chỉ đọc, bạn sẽ cần một tùy chọn khác.
Như @ dash-tom-bang đã nhận xét, một ví dụ điển hình là trong Tệp chương trình, nơi các tệp được bảo vệ theo mặc định. Bài viết kiến thức Microsoft này giải thích cách thức hoạt động trong thực tế.
gvim
như Run as Administrator
chưa? Có lẽ nó sẽ giải quyết mục đích của bạn ... hoặc nếu không thì có thể tập tin đang bị khóa bởi một ứng dụng khác ...
run as administrator
hoàn thành quy trình phụ liên quan đến các nhiệm vụ quản trị phải làm ... Vui lòng xem qua windows.microsoft.com/en-in/windows/, .... nếu không thì tắt UAC
cài đặt ... .
:w!
không bay và bạn phải chạy gVim với tư cách quản trị viên hoặc chạy Vim trong dấu nhắc lệnh được chạy với tư cách quản trị viên.
Bạn có thể sử dụng plugin SudoEdit của tôi .
Có một khả năng khác chưa được giải quyết trong các câu trả lời khác: vim sẽ từ chối lưu tệp nếu nó được mở và khóa bởi một ứng dụng Windows khác. Nhiều ứng dụng Windows thông thường (ví dụ: Office) khóa các tệp mà chúng mở. Nếu đây là vấn đề, không có số lượng lộn xộn với quyền hoặc: w! sẽ giúp bạn. Bạn chỉ cần đóng tệp trong ứng dụng khác, và sau đó bạn sẽ có thể lưu tệp đó từ vim. Thật đáng tiếc khi vim không báo hiệu rõ ràng tình trạng này cho người dùng.
Đối với win7: Bắt đầu> Chạy> Cmd (với tư cách Quản trị viên) và chạy các lệnh này để làm cho cây dir có thể ghi được bởi quản trị viên:
cd parent/folder
:: /f file, /a admin, /r recurse, /d y = nopromt
takeown /F . /A /R /D Y > nul:
:: /t /q /c .. traverse quiet continue
icacls . /t /q /c /reset
icacls . /t /q /c /grant :r Everyone:F
icacls . /t /q /c /setowner Administrators
Chạy gVim với tư cách quản trị viên, ví dụ: bằng cách nhấp chuột phải hoặc sử dụng phím tắt Shift+ F10trên, phím tắt gVim trong menu Bắt đầu của bạn và chọn Chạy với tư cách quản trị viên .
Mở tệp bạn muốn chỉnh sửa và lưu các thay đổi của bạn bằng cách sử dụng :w
như bình thường.
Nhập :f "newfilename"
vào chế độ lệnh sau đó khi rời đi :w
để lưu dưới tên tệp mới.
:w!
không hoạt động. Nó nói không thể mở tập tin để đọc. Mặc dù tôi có thể làm điều tương tự chính xác bên ngoài vim.