Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Vim中将所有文本转换为小写_Vim_Text Processing - Fatal编程技术网

如何在Vim中将所有文本转换为小写

如何在Vim中将所有文本转换为小写,vim,text-processing,Vim,Text Processing,如何将Vim中的所有文本转换为小写?有可能吗 如果你真的是说,那么不,那是不可能的——就像不可能将文本转换为任何形式的粗体或斜体(与之相反)。如果要将文本转换为小写,请创建一个可视块,然后按u(或u转换为大写)。命令模式下的波浪(~)反转光标下字符的大小写 如果希望查看Vim中的所有文本,请查看guifont选项,或者键入:set guifont=*,如果Vim Flavor支持GUI字体选择器 我想你想要小写的文本。解决方案非常简单: ggVGu 说明: gg-转到文本的第一行 V-在直线模

如何将Vim中的所有文本转换为小写?有可能吗

  • 如果你真的是说,那么不,那是不可能的——就像不可能将文本转换为任何形式的粗体或斜体(与之相反)。如果要将文本转换为小写,请创建一个可视块,然后按
    u
    (或
    u
    转换为大写)。命令模式下的波浪(
    ~
    )反转光标下字符的大小写

  • 如果希望查看Vim中的所有文本,请查看
    guifont
    选项,或者键入
    :set guifont=*
    ,如果Vim Flavor支持GUI字体选择器


  • 我想你想要小写的文本。解决方案非常简单:

    ggVGu
    
    说明:

  • gg-转到文本的第一行
  • V-在直线模式下打开视觉选择
  • G-转到文件末尾(在您选择全文时)
  • u-小写选定区域

  • 如果您在Unix环境下运行

    :0,$!tr "[A-Z]" "[a-z]"
    

    给猫剥皮有很多方法。。。以下是我的想法:

    同样,对于大写字母:

    
    :%s/[a-z]/\U&/g
    

    我更喜欢这种方式,因为我一直在使用这种构造(
    :%s/[pattern]/replace/g
    ),所以它更自然。

    类似于mangledorf的解决方案,但更短,更通俗

    :%s/*/\L&/g

    • g~
      将“HellO”切换为“HellO”,然后移动
    • 大写字母“HellO”到“HellO”,加上
      gU
      然后加上一个动作
    • gu
      将“HellO”小写为“HellO”,然后加上一个动作
    有关示例和更多信息,请阅读以下内容:

    我遇到了类似的问题,我想使用
    “:%s/old/new/g”
    ,但最终使用了两个命令:

    :0
    gu:$
    

    使用此命令模式选项

    ggguG
    
    
    gg - Goto the first line 
    g  - start to converting from current line    
    u  - Convert into lower case for all characters
    G  - To end of the file.
    
    通常Vu(或Vu表示大写)足以将整行转换为小写,因为V已经选择了整行来对其应用操作

    Tilda(~)更改单个字母的大小写,产生驼峰大小写或类似的大小写

    Vim有许多不同的模式来处理各种场合,并且这些模式组织得很整齐,这真是太棒了


    例如,v-真实视觉模式、相关的v-视觉线条和Ctrl+Q-视觉块模式(允许您选择块的功能,其他一些高级编辑器通常通过按住Alt键并选择文本来提供这一功能)。

    使用
    ggguG

    gg
    :转到第一行

    gu
    :更改为小写



    G
    :转到最后一行。

    我认为值得一提的是,您不必创建可视块来将文本块小写
    guu
    将把一行小写,而
    gu[运动]
    将把该运动的文本值小写。同样地,
    gUU
    gU[motion]
    的工作方式相同,仅适用于大写。实际上,大多数字母也可以使用小写字母,使用ᴀʙcᴅᴇꜰɢʜıᴊᴋʟᴍɴoᴘʀsᴛᴜvwxʏz.不过,这只是一种攻击。这些字体不能用作普通的小大写字母,字体也不能很好地支持它们。(在我的台式机上,F渲染得很奇怪,在我的手机上,它根本不渲染,举个例子。)总之,Unicode的有趣部分,谢谢!这个答案是不正确的。user80168有正确的答案。如果您想在不进行视觉选择的情况下执行此操作,请选择ggguG:help gu使用大写字母
    U
    (例如,
    ggVGU
    )方括号是多余的,一旦删除它们,也不需要引号<代码>:%!tr A-Z A-ZThe
    表示一个外部shell命令,因此
    $man tr
    (与
    :help tr
    相反)显示
    tr
    用于
    翻译。另一种方法是:
    :%0,$!tr[:upper:[:lower:][/code>我们有很多html页面,所有字符都是大写的。这节省了我用小写重新键入所有内容的时间。在编辑问题之前,问题是如何将vim中的所有文本转换为小写。显然,有一个将文本转换为小写的用例。VIM网站的答案是:谢谢。我认为上一个示例中有一个输入错误(“大写也是如此”)-正则表达式应该改为[a-z],而不是“[a-z]”。
    :%s/\U&/g
    也可以。结果它忽略了数字和非字母字符。吸引我的是
    &
    。为什么\U(或\L)本身还不够?我们能解释一下吗?
    &
    是匹配字符串的替代。因此,
    \U&
    将匹配的字符串大写,以便用于替换。
    :%s/*/\L&
    就足够了(不需要使用
    g
    标志,因为
    *
    选择整行),就像
    :%s/\L&/g
    一样,因为/g/表示该行的全局操作。然而,让我着迷的是
    &
    。为什么这是必要的?
    &
    在这里代表模式匹配的
    ,因此可以理解为:用
    \Lowercase(模式匹配的内容)
    替换
    *
    。请注意,全局匹配
    比匹配
    *
    要慢,我想没有,但是@mangledorf的答案中有一个不太直观的替换命令,用转义序列“\L&”替换所需的字符(小写),用“\U&”替换大写。吸引我的是
    &
    \L和\U是完全有道理的,但是为什么有必要使用
    &
    呢?这与Kalanidhi的答案有什么不同?投票结果是将其设为0,这对于一个复制了上一个答案的答案来说是足够的分数@对于错误/有害的解决方案,应保留MSeifert负分
    ggguG
    
    
    gg - Goto the first line 
    g  - start to converting from current line    
    u  - Convert into lower case for all characters
    G  - To end of the file.