运算符 – VimScript中的〜〜是什么意思?

我无法为我的生活找到一个答案,无论是在谷歌或这里或在帮助文件.
if "test.c" =~ "\.c"

起初我以为〜〜平均结束了,但是观察这些结果:

Command                               Result
echo "test.c" =~ "\.c"                1
echo "test.c" =~ "\.pc"               0
echo "test.pc" =~ "\.c"               1
echo "testc" =~ "\.c"                 1
echo "ctest" =~ "\.c"                 1
echo "ctestp" =~ "\.pc"               0
echo "pctestp" =~ "\.pc"              0
echo ".pctestp" =~ "\.pc"             0

一个很好的解释.指向尝试破译VimScript的站点链接会更好.

From the Vim documentation,它在右边的操作数(作为一个模式)做一个模式匹配.

For strings there are two more items:

a =~ b      matches with
    a !~ b      does not match with

The left item “a” is used as a string. The right item “b” is used as a pattern,like what’s used for searching. Example:

:if str =~ " "
    :  echo "str contains a space"
    :endif
    :if str !~ '\.$'
    :  echo "str does not end in a full stop"
    :endif

您可能会再次尝试您的测试用例.我得到了,例如,与你的不一致:

echo ".pctestp" =~ "\.pc"             1

而双引号和单引号似乎会影响反斜杠的解释方式:

echo "test.pc" =~ "\.c"               1
echo "test.pc" =~ '\.c'               0

相关文章

普通模式 >G 增加当前行到文档末尾处的缩紧层级 $ 移动到本行的末尾 . 相当于一个...
原文连接: https://spacevim.org/cn/layers/lang/elixir/ 模块简介 功能特性 启用模块 快捷键 语言专属...
原文连接: https://spacevim.org/cn/layers/lang/dart/ 模块简介 功能特性 依赖安装及启用模块 启用模...
 =   赋值操作符,可以用于算术和字符串赋值 +        加法计算     -        减法运算...
1.根据包名来查看指定的APP指定数据 adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数...
ctrl+F 向下翻页 ctrl+B 向下翻页 u 取消最近一次操作 U 取消当前行的操作 ZZ 保存当前内容并退出 gg 跳...