标签: vi

为什么我在 sudo vi <filename> 时没有语法高亮?

我不明白在使用 sudo 时如何允许在我通过vi编辑的文件中突出显示语法。当我sudo vi <filename>的终端只是我的终端设置的黑白时。在 vi 如果我输入:syntax on什么都没有改变。

当我vi <filename>所有的语法都正确着色时。使用 RHEL 5.4,相关环境:

LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;
33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;
32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;
32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;
31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;
31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;
35:*.png=01;35:*.tif=01;35:
Run Code Online (Sandbox Code Playgroud)
SHELL=/bin/bash
Run Code Online (Sandbox Code Playgroud)
TERM=xterm-color
Run Code Online (Sandbox Code Playgroud)

linux sudo vi

30
推荐指数
3
解决办法
3万
查看次数

忘记以 root / sudo vi 打开后保存文件

可能重复:
vim 以 root 身份重新编辑

我可以发誓我看到了这个问题。但是在查看了“vi”的每个搜索结果后,我感到难倒/懒惰。

我打开了一个文件,进行了编辑,现在我意识到它是只读的,我以非 root 身份打开它。

linux su vim sudo vi

13
推荐指数
1
解决办法
3365
查看次数

我可以记录 vi 活动吗?

有没有办法记录vi活动?我怀疑另一个用户通过进入 vi 编辑器内的 shell 发出命令,显然这些命令没有记录到历史中。

linux logging vi

10
推荐指数
2
解决办法
2424
查看次数

在bash中编辑时如何保存+关闭文件?

好的 - 我是 linux 新手 - 我试图edit <filename>在默认模式下通过命令从 bash 编辑文件(我假设是“vi”?)。

问题是我不知道如何保存和退出编辑模式 -这个备忘单似乎暗示 ESC 应该做这个伎俩,但它似乎不起作用。

我正在通过 ssh 从 mac 连接到 linux suse Enterprise 11 box。

任何帮助表示赞赏!

linux bash vi

10
推荐指数
1
解决办法
12万
查看次数

如何通过 SSH 在 Vim 中启用颜色?

我有两个远程服务器:

服务器 1:Linux 2.6.18-238.12.1.el5PAE i686 / VIM - Vi 改进 - 版本 7.0.237
服务器 2:Linux 2.6.18-338.19.1.el5.lve0.8.36 x86_64 / VIM - Vi IMproved 版本237

当我通过 ssh 进入服务器 2 并使用 vim 编辑一个php.htaccess文件时,它具有漂亮的颜色突出显示。下面是/etc/vimrc服务器上文件。

当我通过 ssh 进入服务器 1 时,没有显示颜色。我尝试将下面的代码复制到服务器 1 上的 ~/.vimrc 文件中,但颜色语法不起作用。其他功能(如set nocompatible)有效,但颜色无效。

为什么颜色在服务器 1 上不起作用,我该如何测试和修复它?tput colors在两个终端返回8。我试过了:syntax on:syntax enable但这也无济于事。

------------------------------------------------------------

/etc/vimrc文件内容:

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
   set fileencodings=utf-8,latin1
endif

set nocompatible    " Use …
Run Code Online (Sandbox Code Playgroud)

linux unix ssh vim vi

10
推荐指数
1
解决办法
2万
查看次数

在 FreeBSD 中将默认 crontab 编辑器更改为 nano

当我使用crontab -e它编辑 crontab 时,它会在 vi 中打开 crontab。我更喜欢它使用纳米。我怎样才能改变这个?

编辑:

出于某种原因,该export命令返回command not found. 并且更改 EDITOR env 值对crontab -e.

以下命令适用于我的系统:

setenv VISUAL /usr/local/bin/nano

linux freebsd vi cron

9
推荐指数
1
解决办法
2万
查看次数

如何打开带有从“vi”命令行显示的行号的文件?

我已经看到了很多关于如何在vi编辑模式下显示/隐藏行号的示例/用法。

打开行号::set number在编辑模式下输入

关闭行号::set nonumber在编辑模式下输入

我想知道在从命令行打开文件时是否有任何方便的方法/选项(我可能不知道)来指定/提及此选项?

注意:例如,要在打开文件后转到特定行,我们可以vi +/<linenumber> <filename>从命令行方便地说。

linux command-line-interface vi

7
推荐指数
1
解决办法
1万
查看次数

Linux:在使用 vipw 时失去了互联网。我怎样才能解锁文件?

我正在用 vipw 编辑 passwd 文件,当时我短暂地失去了互联网连接。当我重新登录并尝试再次编辑时,出现错误:

vipw: Couldn't lock file: Interrupted system call
vipw: /etc/passwd is unchanged
Run Code Online (Sandbox Code Playgroud)

我假设这意味着 passwd 文件在我编辑它的中断时间仍然被锁定。我怎样才能解决这个问题?

linux centos vi passwd

7
推荐指数
1
解决办法
1453
查看次数

错误的解释器:文本文件忙

多年来,我已经习惯于在“vi”中编辑 Perl CGI 脚本并同时打开浏览器来测试它们。最近,当我这样做时,我收到了“500”服务器错误,当我从 shell 运行脚本时,我得到“错误解释器:文本文件繁忙”。唯一的解决方案是每当我想测试脚本时退出“vi”,这是一种极大的痛苦,应该完全没有必要。那是怎么回事?我正在运行一个 Debian 服务器,我会定期更新它,我假设它是从一些所谓的“升级”开始的:)

debian perl cgi vi 500

6
推荐指数
1
解决办法
3165
查看次数

允许组编辑某些 /etc 文件的最佳方法

我们有一个名为 JBossAdmins 的组,该组的用户必须在 RHEL 6 上编辑一些 /etc 文件:

  • /etc/httpd/*
  • /etc/java/*
  • /etc/jboss/*

我的第一个想法是授予以下 sudo 权限:

%JBossAdmins ALL=(root) /bin/vi /etc/httpd/*
%JBossAdmins ALL=(root) /bin/vi /etc/java/*
%JBossAdmins ALL=(root) /bin/vi /etc/jboss/*
Run Code Online (Sandbox Code Playgroud)

显然,用户现在可以以 root 身份启动 vi,然后通过执行 fe 来编辑任何文件 :e /etc/passwd

所以 sudo 不是一个好主意。

然后我想到做一个chgrp JBossAdmins -R path然后一个chmod g+rw -R path

但我也不太确定这是否是个好主意。

因此,考虑到安全隐患,允许一组用户编辑某些 /etc 文件的最佳做法是什么?有比 sudo 或 chgrp/chmod 更好的选择吗?

security sudo vi

4
推荐指数
1
解决办法
240
查看次数

标签 统计

vi ×10

linux ×8

sudo ×3

vim ×2

500 ×1

bash ×1

centos ×1

cgi ×1

command-line-interface ×1

cron ×1

debian ×1

freebsd ×1

logging ×1

passwd ×1

perl ×1

security ×1

ssh ×1

su ×1

unix ×1