visual.vimspec 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. scriptencoding utf-8
  2. Describe visual
  3. Before all
  4. let lines = [
  5. \ '1.asterisk 2.asterisk 3.asterisk'
  6. \ , '4.Asterisk 5.AsteRisK 6.Asterisk'
  7. \ , ''
  8. \ , '7.アスタリスク 8.アスタリスクです 9.アスタリスク?'
  9. \ , '.* .* .*'
  10. \ , '.* asterisk asterisk'
  11. \ , '".*" ".*" ''asterisk'' ''asterisk'''
  12. \ , '"''.*" "''.*" "aste"risk" "aste"risk"'
  13. \ , "asterisk\r"
  14. \ ]
  15. call g:Add_lines(lines)
  16. End
  17. Before each
  18. call cursor([1, 1])
  19. normal! 2l
  20. let @/ = ''
  21. End
  22. After all
  23. :1,$ delete
  24. End
  25. Context *
  26. It search forward with \<\>
  27. normal viw*
  28. Assert Equals(@/, '\V\<asterisk\>')
  29. End
  30. It search forward only with \<
  31. normal ve5h*
  32. Assert Equals(@/, '\V\<ast')
  33. End
  34. It search forward only with \>
  35. normal 2lve*
  36. Assert Equals(@/, '\Vterisk\>')
  37. End
  38. End
  39. Context #
  40. It search backward and jump to next matchecd pattern
  41. normal $viw2#
  42. Assert Equals(@/, '\V\<asterisk\>')
  43. Assert Equals(col('.'), 3)
  44. End
  45. End
  46. Context multibyte *
  47. It handle left keyword
  48. normal 3jve3h*
  49. Assert Equals(@/, '\V\<アスタ')
  50. End
  51. It handle right keyword
  52. normal 3j3lve*
  53. Assert Equals(@/, '\Vリスク\>')
  54. End
  55. It handle left and right keyword
  56. normal 3jve*
  57. Assert Equals(@/, '\V\<アスタリスク\>')
  58. End
  59. It is irrelabant with keyword
  60. normal 3j1lve2h*
  61. Assert Equals(@/, '\Vスタリ')
  62. End
  63. It handle one character selection
  64. normal 3jve5h*
  65. Assert Equals(@/, '\V\<ア')
  66. End
  67. End
  68. Context regular expression handling
  69. It correctly escape regex
  70. normal! 4j0
  71. normal viW*
  72. Assert Equals(@/, '\V.*')
  73. End
  74. End
  75. Context handling quotes
  76. It correctly handle double quotes with z*
  77. normal! 6j0
  78. normal viWz*
  79. Assert Equals(@/, '\V".*"')
  80. End
  81. It correctly handle double quotes with *
  82. normal! 6j0
  83. normal viW*
  84. Assert Equals(@/, '\V".*"')
  85. End
  86. It correctly handle single quotes with z*
  87. normal! 6j02W
  88. normal viWz*
  89. Assert Equals(@/, '\V''asterisk''')
  90. End
  91. End
  92. Context no cursor movement
  93. It get character under cursor with v
  94. normal v*
  95. Assert Equals(@/, '\V\<a')
  96. End
  97. It get character under cursor with <C-v>
  98. silent! execute 'normal' "\<C-v>*"
  99. Assert Equals(@/, '\V\<a')
  100. End
  101. It get line with <C-v>
  102. normal V*
  103. Assert Equals(@/, '\V\<1.asterisk 2.asterisk 3.asterisk\n')
  104. End
  105. End
  106. Context <C-v>*
  107. It search forward with \<\>
  108. silent! execute 'normal' "\<C-v>ej*"
  109. Assert Equals(@/, '\V\<asterisk\nAsterisk\>')
  110. End
  111. End
  112. Context contains \r
  113. It handles correctly
  114. normal 8j$v*
  115. Assert Equals(@/, '\V\r')
  116. End
  117. End
  118. End