草庐IT

vi命令使用详解

vi命令使用详解1.三种工作模式命令模式:通过命令对文件进行常规操作打开文件时进入命令模式(vi的入口)通过命令对文件进行常规操作,如定位、翻页、复制、粘贴、删除等在图形界面下通过鼠标或快捷键实现的的操作末行模式:执行保存、退出等操作若要退出vi返回控制台,需在末行模式下输入命令(vi的出口)编辑模式:正常编辑文字三种模式的转换:命令模式->编辑模式:i;编辑模式->命令模式:Esc;命令模式->末行模式::;末行模式->命令模式:Esc;关闭文件:末行模式下,输入wq(即保存后退出)除了i进入编辑模式外,还提供了以下命令:命令英文功能常用iinsert在当前字符前插入文本常用Iinsert在

linux - 我的 Vim 7.3 与 Vim 7.1 的行为方式不一样?

我一直想问这个问题,但我认为这是我的错。我在两个地方使用Vim:一个在Ubuntu中,另一个在Cygwin中。Ubuntu:VIM-ViIMproved7.1(2007May12,compiledMay6200816:24:07)Cygwin:VIM-ViIMproved7.3(2010Aug15,compiledAug19201013:06:02)在7.1中,当我使用Esc-i进入Insert模式时,我可以使用箭头键并将其用作nano等普通文本编辑器。但是,在另一个版本7.3中,当我进入insert模式时,我无法再使用箭头键或空格键。当我点击它们中的任何一个时,我会得到C、D等字符作

linux - 我的 Vim 7.3 与 Vim 7.1 的行为方式不一样?

我一直想问这个问题,但我认为这是我的错。我在两个地方使用Vim:一个在Ubuntu中,另一个在Cygwin中。Ubuntu:VIM-ViIMproved7.1(2007May12,compiledMay6200816:24:07)Cygwin:VIM-ViIMproved7.3(2010Aug15,compiledAug19201013:06:02)在7.1中,当我使用Esc-i进入Insert模式时,我可以使用箭头键并将其用作nano等普通文本编辑器。但是,在另一个版本7.3中,当我进入insert模式时,我无法再使用箭头键或空格键。当我点击它们中的任何一个时,我会得到C、D等字符作

linux - 从 haskell 程序中运行 vi(处理 ptys)

我正在尝试编写一个日志shell;例如一种捕获有关以结构化格式运行的命令的数据。为此,我使用readline读入命令,然后在子shell中执行它们,同时捕获所用时间、环境、退出状态等信息。到目前为止一切顺利。然而,最初尝试从这个日志shell中运行vi或less之类的东西失败了。调查表明要做的事情是建立一个伪tty并将子shell连接到它而不是连接到普通管道。这停止了​​vi提示没有连接到终端,但仍然失败-我在屏幕上打印了一些废话并且命令在编辑器中打印为字符-例如'ESC'仅显示^[。我认为我需要做的是将pty置于原始模式。为此,我尝试了以下操作:pty>=\a->openFdaRea

linux - 从 haskell 程序中运行 vi(处理 ptys)

我正在尝试编写一个日志shell;例如一种捕获有关以结构化格式运行的命令的数据。为此,我使用readline读入命令,然后在子shell中执行它们,同时捕获所用时间、环境、退出状态等信息。到目前为止一切顺利。然而,最初尝试从这个日志shell中运行vi或less之类的东西失败了。调查表明要做的事情是建立一个伪tty并将子shell连接到它而不是连接到普通管道。这停止了​​vi提示没有连接到终端,但仍然失败-我在屏幕上打印了一些废话并且命令在编辑器中打印为字符-例如'ESC'仅显示^[。我认为我需要做的是将pty置于原始模式。为此,我尝试了以下操作:pty>=\a->openFdaRea

linux - SED - 删除后跟换行 (\n) 的字符串

我找不到合适的sed表达式来删除后跟行返回(\n)的单词测试文件是:line1\nline2\nline3mark\nline4\nline5\n我想删除所有出现的标记\n离开,在这种情况下:line1\nline2\nline3line4\nline5\n已搜索并可以使用:sed's/\n//g'test.filetoremoveALL\n's但是sed's/mark\n//g'test.filedoesnotwork奇怪的是,s/mark\n//g在vi​​的交互模式下似乎工作正常。非常感谢任何帮助!如果可能的话,我想了解如何使用SED来做到这一点,因为我相信这是可能的!!但是,如

linux - SED - 删除后跟换行 (\n) 的字符串

我找不到合适的sed表达式来删除后跟行返回(\n)的单词测试文件是:line1\nline2\nline3mark\nline4\nline5\n我想删除所有出现的标记\n离开,在这种情况下:line1\nline2\nline3line4\nline5\n已搜索并可以使用:sed's/\n//g'test.filetoremoveALL\n's但是sed's/mark\n//g'test.filedoesnotwork奇怪的是,s/mark\n//g在vi​​的交互模式下似乎工作正常。非常感谢任何帮助!如果可能的话,我想了解如何使用SED来做到这一点,因为我相信这是可能的!!但是,如

c - 如何在 vi/vim 中查找 C 代码中函数的调用者和被调用者?

我想知道如何轻松单击(或使用一些简单的快捷方式)函数名称并找到它的所有被调用者或打开它的定义位置。网络中的大多数网络手册真的很难理解或不会碰巧解决。假设我想点击allocuvm并查看它的定义位置?uintnewstk=allocuvm(pgdir,USERTOP-PGSIZE,USERTOP); 最佳答案 cscope最小示例Ingo提到过,这里有一个例子。首先你应该设置你的.vimrc:setcscopequickfix=s-,c-,d-,i-,t-,e-然后到你的项目的基目录并运行:cscope-Rb这会生成一个cscope.o

c - 如何在 vi/vim 中查找 C 代码中函数的调用者和被调用者?

我想知道如何轻松单击(或使用一些简单的快捷方式)函数名称并找到它的所有被调用者或打开它的定义位置。网络中的大多数网络手册真的很难理解或不会碰巧解决。假设我想点击allocuvm并查看它的定义位置?uintnewstk=allocuvm(pgdir,USERTOP-PGSIZE,USERTOP); 最佳答案 cscope最小示例Ingo提到过,这里有一个例子。首先你应该设置你的.vimrc:setcscopequickfix=s-,c-,d-,i-,t-,e-然后到你的项目的基目录并运行:cscope-Rb这会生成一个cscope.o

linux - 从外部源将文本 block 粘贴到 vi 编辑器中的最快方法

例如,从网页复制配置部分,然后将其粘贴到您在vi中打开的.conf文件中。 最佳答案 进入插入模式(输入i)输入:Ctrl+Shift+v 关于linux-从外部源将文本block粘贴到vi编辑器中的最快方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4402198/