Làm cách nào để lưu tệp chỉ đọc trong Vim cho Windows?


8

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:


11

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ế.


Tài khoản của tôi được đặt là Quản trị viên nhưng :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.
Durga Swaroop

1
@DurgaSwaroop: Bạn đã thử mở gvimnhư Run as Administratorchư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 ...
Xi

1
@DurgaSwaroop: Quá trình cha mẹ phải run as administratorhoà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 UACcài đặt ... .
Hình trụ

1
Chẳng hạn, chỉnh sửa các tệp bên trong hệ thống phân cấp Tệp Chương trình, :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.
dash-tom-bang

1
Cảm ơn @ dash-tom-bang, tôi đã thêm tham chiếu đến ví dụ hay đó trong câu trả lời của mình.
rolinger

2

Bạn có thể sử dụng plugin SudoEdit của tôi .


Điều này có hoạt động trên windows đúng không? Trong tệp Readme có thể nó sẽ không được.
Durga Swaroop

Từ thử nghiệm của tôi nó nên. Tuy nhiên, tôi không sử dụng Windows thường xuyên và tôi chưa bao giờ nhận được bất kỳ phản hồi nào cho việc đó. Đó là lý do cho các readme. Nó cũng phụ thuộc vào phương pháp bạn sử dụng.
Christian Brabandt

2

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.


0

Đố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 

0

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 :wnhư bình thường.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.