2011-06-21 48 views
3

我經常打開只讀文件,我想知道是否有辦法讓它們在Vim中可寫。我不要意思是:w!,我需要關閉Vim後文件是可寫的。如何使Vim內部文件可寫

回答

3

問題來自於一個事實,即更改文件屬性後,Vim會檢測到它,並會嘗試重新加載該文件,你將失去用戶名你輸入的內容。

最好似乎創建了一個函數,該函數重新定義autocmd FileChangedShell在檢測到屬性更改時不執行任何操作。

請參閱this example of setting file attributes without reloading a buffer其中給出了一個用於製作所有文件可執行文件的示例。

這應該爲你

1

你可以使用!執行shell命令。所以你可以改變用戶使用:!chown myusername filename或更改訪問權利使用例如:!chmod o+w filename

1

此外,如果該文件是隻有其他用戶可寫(你不是所有者,所以不能chmod它),你可能映射此命令:

:command SuWrite %!sudo tee % 

當然,須藤-u爲其他用戶

1

我發現這個解決方案在其他地方做的伎倆:

:set readonly! 
:set modifiable 

我的情況是,在Vim打開我的文件,我搭配chmod 777從開幕前的命令行,爲只讀。不知道這是否可以幫助你...

編輯:忘了第二個命令。只有兩者的結合起作用。

0

!sudo chmod 777 %

當詢問是否要使用緩衝區, 「O」 型就OK了。

0

您可以使用vim-eunuch plugin中的SudoWrite命令,該命令允許您使用sudo寫入文件,即使您忘記使用sudo打開vim。當你忘記時,消除這種惱人的行爲是一種很好的方式。

相關問題