首页 > 其他分享 >vim强制保存只读文件的方法

vim强制保存只读文件的方法

时间:2023-04-04 11:12:05浏览次数:40  
标签:文件 只读 sudo 保存 vim tee 命令 强制

在使用vim时,当我们以普通用户去打开一个只有root用户才有权限操作的文件时,我们编辑完成之后,正要保存,却发现,这个文件我们没有权限修改。

每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法保存,就只能放弃,然后退出,再以root权限打开,重新编辑。

我总是相信,所有的问题都有解决的方法。通过查阅资料,终于解决了这个问题。

解决方案:

底行命令模式执行::w !sudo tee %

w: 表示保存文件
!: 表示执行外部命令
tee: linux命令,这个有点复杂,可以查看linux命令帮助
%: 在执行外部命令时,%会扩展成当前文件名;这个%区别于替换时的%,替换时%的意义是代表整个文件,而不是文件名

 

上述方式非常完美的解决了不能保存只读文件的问题,但毕竟命令还是有些长,为了避免每次输入一长串的命令,可以将它映射为一个简单的命令加到 .vimrc 中:

" Allow saving of files as sudo when I forgot to start vim using sudo.
 cmap w!! w !sudo tee > /dev/null %

 

这样,简单的运行:w!!即可。命令后半部分> /dev/null作用为显式的丢掉标准输出的内容。

标签:文件,只读,sudo,保存,vim,tee,命令,强制
From: https://www.cnblogs.com/codehome/p/17285743.html

相关文章

  • vim setting
    /etc/vim/vimrcsetnocompatible"usevimdefaultssetbackspace=2"makebackspacelikemostotherappssetls=2"allwaysshowstatuslinesettabstop=5"numbersofspacesoftabcharactersetshiftwidth=5......
  • The Vim commands cheat sheet (ubuntu) vi编辑器常用的命令及快捷键
    HowtoExit :q[uit]QuitVim.Thisfailswhenchangeshavebeenmade.:q[uit]!Quitwithoutwriting.:cq[uit]Quitalways,withoutwriting.:wqWritethecurrentfileandexit.:wq!Writethecurrentfileandexitalways.:wq{file}Writeto{file}.Exitifnotedi......
  • Vimgenius使用教程
    (需要绕过IP封锁等访问限制)BecomeaVimGeniusIncreaseyourspeedandimproveyourmusclememorywithVimGenius,atimedflashcard-stylegamedesignedtomakeyoufasterinVim.It’sfreeandyoudon’tneedtosignup.Whatareyouwaitingfor?StartNow......
  • Neovim,要尝一口不?
    Neovim风评很好,我机器上其实早装了它来替代vim。只不过这两年用vscode较多,冷落了它,除了偶尔改改配置文件,很少用。难得大过年的有点儿空,就来倒腾它一下子,最终效果如下。基础配置从0.5版开始,Neovim允许使用Lua代替VimL作为配置语言,所以这里也直接从init.lua开始了。......
  • mingw64 + nvim + coc.nvim + nvim-dap : C++ windows - 01
    目标用做C++编译器尽量不要扩展其它功能python是避免不了,所以才安装的。1.1下载安装https://mirror.tuna.tsinghua.edu.cn/msys2/distrib/msys2-x86_64-latest.exe安装路径:C:\gnu\msys641.2mingw64.exe使用这个:C:\gnu\msys64\mingw64.exe1.3安装程序:pac......
  • mingw64 + nvim + coc.nvim + nvim-dap : C++ windows - 02
    2.1命令行工具https://github.com/sharkdp/fdhttps://github.com/junegunn/fzfhttps://github.com/BurntSushi/ripgrephttps://github.com/tree-sitter/tree-sitterC:\gnu\cli\fd.exeC:\gnu\cli\fzf.exeC:\gnu\cli\rg.exeC:\gnu\cli\tree-sitter.exe添加到path......
  • mingw64 + nvim + coc.nvim + nvim-dap : C++ windows - 03
    3.1cclshttps://github.com/MaskRay/ccls/wiki/Build在msys中:pacman-S--noconfirmmingw-w64-x86_64-clangmingw-w64-x86_64-clang-tools-extramingw64/mingw-w64-x86_64-pollymingw-w64-x86_64-cmakemingw-w64-x86_64-jqmingw-w64-x86_64-ninjamingw-w64-x86_64-n......
  • mingw64 + nvim + coc.nvim + nvim-dap : C++ windows - 04
    4.1init.vim将init.vim放置到下面:echostdpath('config')~\AppData\Local\nvim4.2plughttps://github.com/junegunn/vim-plug将plug.vim放置到下面~\AppData\Local\nvim-data\site\autoload4.3:PlugInstall4.3.1网络问题gitproxy4.3.2process4.3......
  • mingw64 + nvim + coc.nvim + nvim-dap : C++ windows - 05
    PSC:\Users\dev\Desktop\cpp>cd.\build\PSC:\Users\dev\Desktop\cpp\build>cmake..-DCMAKE_BUILD_TYPE=Debug--Buildingfor:Ninja--TheCcompileridentificationisGNU12.2.0--TheCXXcompileridentificationisGNU12.2.0--Detect......
  • Linux vi/vim
    Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。vi是每个开发人员必须要掌握的基础软件,学习系统编程也是离......