سؤال

How should I enter the following as a single string at the command prompt in vim

:let v:errmsg = ""  
:silent! /\cend of .*project gutenberg  
:if v:errmsg != ""  
:echo "Not found"  
:endif  

This does not work, the message is not printed.

:let v:errmsg = ""|:silent! /\cend of .*project gutenberg|:if v:errmsg != ""|:echo "Not found"|:endif  
هل كانت مفيدة؟

المحلول 2

Range-search may be not the best option in your case. You can use

if !search('\cend of .*project gutenberg') | echo 'Not found' | endif

if you are fine with not updating last search pattern.

نصائح أخرى

Well, the problem is the normal search you are doing. The range search sees the | as part of its arguments and therefore it cannot be used to enter another command. Therefore, wrap it into an :exe call like this:

let v:errmsg = ""|exe 'sil! /\cend of .*project gutenberg'|if v:errmsg != ""|echo "Not found"|endif 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top