首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我在vim中键入一个'-‘字符时,它似乎打印了一个回车符,然后是'm’。

在vim中,当你键入一个"-"字符时,它似乎打印了一个回车符,然后是"m"。这是因为在vim的普通模式下,"-"字符有一个特殊的含义,它是移动光标到上一行行首的命令。因此,当你键入"-"字符时,vim会执行这个命令,并将光标移动到上一行行首。接着,vim会将行首的字符打印出来,这是一个回车符。最后,你键入的字符"m"会被显示出来。

如果你想要输入一个实际的"-"字符而不是执行这个命令,你可以在键入"-"字符前按下"Ctrl+V"组合键,这样vim会将下一个键看作普通字符而不是命令。

这是vim中的一个小技巧,如果你想要深入了解vim的更多功能和命令,可以参考腾讯云的《vim编辑器使用详解》文章:链接地址

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

getchar的使用

把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误 3....getchar()stdio.h的库函数,的作用是从stdin流读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接 读取了,第一次getchar(),确实需要人工的输入,但是如果你输了多个字符...首先,用getchar()函数进行字符的输入,并不是直接从键盘这个硬件读取输入的字符,而是从“输入缓冲区”得到的字符。 输入缓冲区一个字符的队列,其中存储所有你尚未读取的字符。...然而,这个输入缓冲区的设计,把所有从键盘上输入的东西都放进去的,包括你每次按的回车符‘\n’, 而getchar函数只读走了你回车前输入的那个字符,而将回车符保留在输入缓冲区。...一多加一个getchar(),过滤掉回车,但是这种方法有不足,就是如果你调用第一个getchar输入了多个字符, 那么,加入一个getchar并不能把所有未读取的字符过滤。

77550

shell脚本对编码和行尾符敏感吗

似乎将空行作为命令。我的编辑器(VS Code),我尝试将\r\n替换为\n(以防\r产生问题),但它没有改变什么。...真正让我感到奇怪的仍然运行应用程序(如果我手动执行npm install)…… 由于无法正常工作,并且怀疑文件本身有什么奇怪的地方,我直接在Mac上创建了一个新的文件,这次使用了vim。...我输入了完全相同的指令,然后...现在工作起来没有任何问题。 用 diff 对比两个文件的差异显示完全没有差异。 有什么区别?是什么导致第一个脚本无法运行?我怎样才能知道? 答: 是的。...Bash脚本对行结束很敏感,无论脚本本身还是处理的数据。它们应该有Unix风格的行结束符,即每行以换行符结束(ASCII的十进制10,十六进制0A)。...对于Windows或DOS风格的行尾,每一行都以回车符和换行符结束。你可以命令cat -v yourfile的输出中看到这个不可见的字符: $ cat -v yourfile #!

17020
  • 一天一个 Linux 命令(1):vim 命令

    该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示屏幕上。文本输入过程,若想回到命令模式下,键入 ESC 键即可。...关闭警告--verbose,打印进度信息 (3)vim 指定编码类型浏览文件 如果知道文件的编码类型,可显示指定编码类型来解析文件,而不用vim去猜测文件的编码类型,事实上猜测的往往错误。...如果想在每一行执行相同的命令, vim 里可以用 :g 实现。一般的语法: :g/pattern/cmd 表示匹配 /pattern/ 这个正则表达式的行上执行 cmd 命令(也称冒号命令)。...比如回车符(Carriage Return) 的二合字母CR。...Ctrl+字母: vim,使用:set list显示所有字符,经常会看到有^I、^M等符号,代表的字符可以使用:h digraph-table查看,特殊字符列表如下: vim的编辑模式下,

    84410

    java input.nextline_关于java:Scanner#nextLine()留下一个剩余的换行符

    大家好,又见面,我你们的朋友全栈君。 我一直遇到Scanner#nextLine的问题。 根据我的理解,nextLine()应该返回当前输入流的其余部分,然后继续进行下一行。...作为用户,您一次只能输入一行字符对于扫描仪来说是没有意义的。 因此,您键入8(其中代表操作系统的实际换行符)。 nextInt()之后,8已被消耗。 然后键入2,使暂挂输入为2。...记住,到目前为止,仅消耗8。 nextInt()然后跳过空格并返回2,从而消耗2。 然后键入badinput,使暂挂输入为badinput。...由于下一个令牌不是有效的整数,因此将引发异常,并输入catch块,在其中调用nextLine()。使用直到第一个的所有字符,并返回之前的文本,即空字符串。...我怀疑当您输入两位数的年份,以及您使用next()读取,它将仅读取下一个字符串。

    1.2K10

    【Linux】第一个小程序——进度条实现

    实现进度条之前我们首先需要补充两个小知识。 1. 回车概念   Linux系统,\n和\r两个重要的转义字符,它们分别代表着换行符和回车符,各自具有不同的功能和应用场景。...行缓冲区   Linux,行缓冲区一种缓冲机制,用于存储输出数据,直到满足某个条件后才将数据发送出去。行缓冲区按行存储数据的,即只有当输出的数据包含换行符,才会发送数据。   ...标准输出流一个缓冲流,当数据写入到标准输出流,并不会立即显示出来,而是先存储缓冲区,当缓冲区被填满或者手动调用fflush函数,才会将缓冲区的内容刷新到显示器上。 3....; // 对于非终端设备,如文件,直接打印纯文本 } return 0; } 在这个例子,如果运行程序的一个终端,它会显示红色的"Hello, World!"...  我们需要使用随机数来模拟一次下载的进度,然后累加到进度条而不是一直维持一个速度下载,代码如下: 然后我们就可以使用随机数模拟下载,结果如下: 然后就可以利用每次的下载量比例更新进度条,代码如下

    9910

    笨办法学 Linux 0~3

    为此,我强烈建议你学习 vim 的基础知识,这是 Linux 处理文本的最强大的工具之一。Vim 由 Bill Joy 于 1976 年编写的,vi 的重新实现。...vi 实现一个非常成功的概念,甚至 Microsoft Visual Studio 2012 有一个插件,提供一个模式,与这个超过 35 岁的编辑器兼容。...你做到。你刚刚在 vim 编辑文本文件,很好很强大! 附加题 通过键入键入vim hello.txt再次启动 vim,并尝试我给你的一些命令。...选项-v让cp详细输出,这意味着它会打印所有的操作。记住这个选项,通常用于让命令给你提供比默认更多的信息。 .bash_rc配置文件添加一行。从现在开始,每次登录到vm1, 都将执行该命令。...从.profile文件精确打印出最后 5 行。 将所有命令历史写入.bash_history文件。通常这是会话结束完成的,当你通过键入exit或按 + D关闭

    2.7K10

    Linux 删除文本的回车字符的方法

    当你尝试 Linux 上处理 Windows 上创建的文件,这种不兼容性有时会导致问题,但这是一个非常容易解决的问题。...这有一个 od 输出的示例,高亮显示的 CRLF 字符,以及的八进制。...3 种从文本删除回车符的方法 幸运的,有几种方法可以轻松删除回车符。...vi 你甚至可以使用 vi 删除回车符(Ctrl+M),但这里假设你没有打开数百个文件,或许也在做一些其他的修改。你可以键入 : 进入命令行,然后输入下面的字符串。...与 sed 一样,命令 ^M 需要通过 Ctrl+V 输入 ^,然后 Ctrl+M 插入 M。%s 替换操作,斜杠再次将我们要删除的字符和我们想要替换的文本(空)分开。

    4K10

    C语言 getchar()原理及易错点解析

    的库函数,的作用是从stdin流读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar(),确实需要人工的输入,但是如果你输了多个字符,以后的getchar...实际上 输入设备->内存缓冲区->getchar() 你按的键放进缓冲区,然后供程序getchar() 你有没有试过按住很多键然后等一会儿会滴滴滴滴响,就是缓冲区满了,你后头按的键没有存进缓冲区...作用2:前面的scanf()在读取输入时会在缓冲区留下一个字符’\n’(输入完按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,接下来的scanf()就不会等待从键盘键入字符...原因: 获取用户第一个输入字符,scanf("%s",&m);,我们用%s作为转换说明,%s的作用是“把输入解释成字符串。从第一个非空白字符开始,到下一个空白字符之前的所有字符都是输入。”...getchar()不会跳过换行符,所以进入下一轮迭代,还没来得及输入字符,它就读取了换行符,然后将其赋值给ch。而ch换行符正式终止循环的条件。 如何改进??

    1.4K60

    终端terminal个性化配置

    ”) \j 在此 shell通过按 ^Z挂起的进程数 \l 此 shell的终端设备名(如 “ttyp4″) \n 换行符 \r 回车符 \sshell的名称(如 “bash”) \t24小制时间(...当前命令历史缓冲区的位置 \# 命令编号(只要您键入内容,它就会在每次提示累加) \ 如果您不是超级用户 (root),则插入一个 “”;如果您是超级用户,则显示一个 “#” \xxx 插入一个用三位数...使 bash能够正确计算自动换行。 \] 这个序列应该出现在非打印字符序列之后。...\[ \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示 shell 里占用太多的空间。 \033 声明了转义序列的开始,然后 [ 开始定义颜色。...后面的 0 定义默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义字符背景色。字母m定义本身所必须的,字母m后面的字符就是你想改变的字符

    4.2K20

    世界上最好的编辑器Vim:1700多页数学笔记如何实时完成的

    Vim 和 LaTex 我使用 Vim LaTex 记文本和数学公式。Vim 一个功能强大的通用文本编辑器,可扩展性很强。...Snippets 一个 snippet 一段可重复使用的短文本,可用来编辑其他文本。例如,当我键入 sign 并按下 Tab ,单词 sign 将会补全为一个自定义的签名。 ?...Snippet 也可以是动态的:当我键入 today 并按下 Tab ,单词 today 将会被当前日期替代;键入 box Tab 变成一个可以自动增大的框。 ? ?...当我结尾$的正后方开始键入一个单词添加一个位置。但是,当我键入一个非单词字符,它不添加一个位置,例如下图的$p$-value。 ?...当你 [A-Za-z]\d 编码的数字后面键入一个字符,或者 _以及两个数字 [A-Za-z]_\d\d 后面键入一个字符,触发器会扩展该 snippet。

    1.9K10

    java转义字符之换行字符

    大家好,又见面,我你们的朋友全栈君。...我们知道,java代码,\r和\n和\r\n都表示换行,当我们想输出“\n”,如果直接写System.println(“\n”);看不到任何东西的,因为其自动被转义为换行了。...这时,我们就需要使用转义字符。 这里先给出转义字符: 使用示例: 输出结果为: 注: \r回车符; \n换行符。 注:写程序时,代码里面的换行,我们一般都使用’\n’表示换行。...注: 用’\n’作为作为换行符的文件,用Windows的记事本打开 会没有换行; 用”\r\n”作为换行符的文件(windows文件),用Unix/Linux或Mac的vim指令打开 会将...Mac的zsh,采用\n作为换行符,遇到\r将会被解释为回车符,即移动到该行的行首,然后继续执行代码。

    8.8K40

    生信服务器入门级基本设置

    “静态”主机名也称为内核主机名,系统启动从 /etc/hostname 自动初始化的主机名。“瞬态”主机名系统运行时临时分配的主机名,例如,通过 DHCP 或 mDNS 服务器分配。...当前命令历史缓冲区的位置 \# 命令编号(只要您键入内容,它就会在每次提示累加) \$ 如果您不是超级用户 (root),则插入一个 "$";如果您是超级用户,...则显示一个 "#" \xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 "\007")表示的 ASCII 字符 \\ 反斜杠 \[ 这个序列应该出现在不移动光标的字符序列...使 bash 能够正确计算自动换行。 \] 这个序列应该出现在非打印字符序列之后。 以上就是今天关于服务器入门的一些基本设置。...随着使用的不断深入,如果你发现其他一些更强大更好玩的服务器使用或者设置小技巧,不妨留言区写下你的分享! ----

    1.3K20

    C语言之 ——入门必刷题 (1)

    针对求一个数的个位数,那么他的小数部分就可有可无,所以我们利用强制转换,将其转换为整型,模10后,易得出其个位数。...\n",n); getchar(); } } return 0; }          getchar(),用来接收字符,但是当我们输入一个字符,并按下回车键的时候,其实这是,回车也作为一个字符输入了进去...所以,此时前面的scanf()在读取输入时会在缓冲区留下一个字符'\n'(输入完第一个字符的值后按回车键所致),所以如果不在此加一个 getchar()把这个回车符取走的话,getchar()就不会等待从键盘键入字符...思路:假设此时为一个四位数的数字,需要拆分为 146 和1,14 和 61,1 和 461.                      ...一个数除10,100,1000,得到的他的商 一个数模10,100,1000,得到的他的余数 102/10得到1和0;98/10得到9;98%10得到8;123/100得到1;123%100得到23

    42330

    Vim,牛逼

    就好像弹一把吉他,一开始学起来非常痛苦,简直想摔了,但学会后,就能感受到乐器的无限魅力,以及学妹崇拜的小眼神。 来吧,下定决心拥抱,没有比它更好的文本编辑器,非常地难学,但却不可思议地好用。...键入 :help 就可以查看 Vim 的帮助文档,尽管文档英文的,但这的确是最权威的 Vim 学习资料,听我一句劝,耐着性子读一读吧! ? 键入 :q 可以退出帮助文档。...键入 x 删除当前光标所在的一个字符键入 p 可用于粘贴上一次复制的内容。 键入 yy 可以复制当前行的内容。 键入 u 可用于撤销当前操作。 键入 :w 可以保存当前修改后的内容。...同样的,当我们熟练掌握上述这些命令之后,也会感到空前的寂寞,因为 Vim 的强大绝不止于此。 来看一下,Vim 怎么重复自己的。 键入 . 可以重复上一次的命令。这意味着什么呢?...原来一边编辑,一遍预览, Vim 下,只需要键入三四个字符! 04、结语 如果你想在手头备一份 Vim 的帮助手册,免得在用 Vim 的时候四处搜索,实话告诉你,我替你准备,就是这么贴心。

    42710

    c语言中getchar的运用_c语言中gets和getchar

    1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf()在读取输入时会在缓冲区留下一个字符’\n'(输入完s[i]的值后按回车键所致), 所以如果不在此加一个getchar()把这个回车符取走的话...,gets()就不会等待从键盘键入字符,而 会直接取走这个“无用的” 回车符,从而导致读取有误 3. getchar()输入缓冲区顺序读入一个字符(包括空格、回车和Tab) getchar()使用不方便...【转】 getchar()stdio.h的库函数,的作用是从stdin流读入一个字符,也就是说,如果stdin有数 据的话不用输入它就可以直接读取了,第一次getchar(),确实需要人工的输入...实际上 输入设备->内存缓冲区->程序getchar 你按的键放进缓冲区,然后供程序getchar 你有没有试过按住很多键然后等一会儿会滴滴滴滴响,就是缓冲区满了,你后头按的键没有存进缓冲区....键盘输入的字符都存到缓冲区内,一旦键入回车,getchar就进入缓冲区读取字符,一次只返回第一个 字符作为getchar函数的值,如果有循环或足够多的getchar语句,就会依次读出缓冲区内的所有字符

    2.9K20

    Linux命令(34)——vim命令

    Vim,命令通常是单个键,例如i、a、o等;而在Ex,命令是以按回车键结束的正文行。Vim一个专门的“转义”命令,可访问很多面向行的Ex命令。...4.3vim读写文件编码转换过程 (1)读文件 vim打开文件,需要将磁盘文件内容载入缓存,并将缓存字符转为换终端编码,通过网络传输的方式,传输到终端进行显示。...,关闭警告 --verbose,打印进度信息 (3)指定编码类型浏览文件 如果知道文件的编码类型,可显示指定编码类型来解析文件,而不用vim去猜测文件的编码类型,事实上猜测的往往错误。...Ctrl+字母: vim,使用:set list显示所有字符,经常会看到有^I、^M等符号,代表的字符可以使用:h digraph-table查看,特殊字符列表如下: ?...vim的编辑模式下,可使用“Ctrl+字母”进行输入,例如使用"Ctrl+i"或"Ctrl+I"可以输入字符^I(Tab),使用"Ctrl+m"或"Ctrl+M"可以输入字符^M(回车)。

    3.4K20

    less(1) command

    1.命令简介 less 常用的文本文件阅读工具,类似于 more 但更强大。 less 主要用于浏览大文件,加载文件不会读取整个文件,相比于 vim 或 nano 等文本编辑器,启动会更快。...-Pw 更改在等待数据打印的消息( F 命令) -q, --quiet, --silent 导致适度的“静音”操作。...这允许选项字符包含美元符号 -- 该选项标识命令行选项的结束,之后的参数被解释为文件名,当在文件名的首字符 - 或这 + 需要使用该选项 + 如果命令行选项以 + 开头,则将该选项的其余部分视为初始命令...4.交互式命令 以下描述,^X 表示 control-X,ESC 表示退出键,比如 ESC-v 表示两个字符序列,先是 ESC,然后 v。如果忘记命令,可以键入 h 或 H 查看命令的帮助信息。...检查第 N 个文件(从命令行给定的文件列表);N 默认为 1,可以键入命令前输入 N :d 从文件列表删除当前文件 t 跳到下一个标签 T 跳到上一个标签 =, ^G, :f 打印有关正在查看的文件的一些信息

    22930

    Linux 命令(89)—— less 命令

    这个选项通常放在 LESS 环境变量,而不是出现在命令行选项。该选项必须 LESS 变量的最后一个选项,或者以美元符号终止。比如 -Ps 后面跟一个字符串会将默认(简短)提示符更改为该字符串。...-Pw 更改在等待数据打印的消息( F 命令) -q, --quiet, --silent 导致适度的“静音”操作。...这允许选项字符包含美元符号 -- 该选项标识命令行选项的结束,之后的参数被解释为文件名,当在文件名的首字符 - 或这 + 需要使用该选项 + 如果命令行选项以 + 开头,则将该选项的其余部分视为初始命令...4.交互式命令 以下描述,^X 表示 control-X,ESC 表示退出键,比如 ESC-v 表示两个字符序列,先是 ESC,然后 v。如果忘记命令,可以键入 h 或 H 查看命令的帮助信息。...检查第 N 个文件(从命令行给定的文件列表);N 默认为 1,可以键入命令前输入 N :d 从文件列表删除当前文件 t 跳到下一个标签 T 跳到上一个标签 =, ^G, :f 打印有关正在查看的文件的一些信息

    4.4K30

    Linux和Windows的换行符

    一直对换行符这个东西概念比较模糊,直到最近花了一点间仔细研究一下,才彻底搞清楚这个问题,本文前面介绍部分外文转载,后面例子个人总结,希望能对大家有一些帮助。...一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。...那时,存储器很贵,一些科学家认为每行结尾加两个字符太浪费了,加一个就可以。于是,就出现分歧。...即“\r”,十六进制数值:0D; 一个直接后果,Unix系统下的文件Windows里打开的话,所有文字会变成一行;而Windows里的文件Unix下打开的话,每行的结尾可能会多出一个^M符号...解决: 1 去掉^M 1)vim使用替换命令 :1,$ s/^M//g ^M使用ctrl-V,ctrl-M输入 2)使用tr来清除 cat file.txt |tr -d "\r" > newfile.txt

    5.3K70

    Linux命令(34)——vim命令

    其中fenc当前文件的编码,也就是说,一个vim里面已经正确显示的文件(前提你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。...比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的,:set fenc=gb18030再:w就把文件存成gb18030的。...比如回车符(Carriage Return) 的二合字母CR。...Ctrl+字母: vim,使用:set list显示所有字符,经常会看到有”^I”、”^M”等符号,代表的字符可以使用:h digraph-table查看,特殊字符列表如下: image.png...vim的编辑模式下,可使用“Ctrl+字母”进行输入,例如使用”Ctrl+i”或”Ctrl+I”可以输入字符”^I”(Tab),使用”Ctrl+m”或”Ctrl+M”可以输入字符”^M”(回车

    2.5K30
    领券