I added a function in my .vimrc that’s just few search and replace commands. However if one of the patterns is not found I get an error message that I need to enter through. How can I suppress this?
asked Jun 25, 2009 at 11:33
nearly_lunchtimenearly_lunchtime
12.1k15 gold badges37 silver badges42 bronze badges
You can either use :silent
or :silent!
as a prefix to any command or you can add the ‘e’ option to the substitute, which is often easier.
:%s/x/y/ge
:silent! %s/x/y/g
:silent %s/x/y/g
For more information, see
:help :silent
:help :s_flags
The information on the e
flag is a few paragraphs down from the :s_flags
help.
answered Jun 25, 2009 at 12:22
2
You might use silent:
:silent %s/x/y/g
or, if you need to do string manipulation to determine the strings to search and replace:
exec ":silent %s/x/" . varName . "/g"
I’m not 100% sure, but I think that silent
only works in scripts.
answered Jun 25, 2009 at 11:48
Paolo TedescoPaolo Tedesco
54.8k33 gold badges143 silver badges192 bronze badges
Probably a little bit off topic but i found this thread when searching for solutions for «search pattern not found» errors in vim, when i wanted to search for the next occurence in vim. The following map omits the error when pressing ‘n’
map n :silent! /
answered May 20, 2016 at 8:03
Maybe the :he :silent thing can be used to suppress those errors?
answered Jun 25, 2009 at 11:49
SamSam
14.5k6 gold badges26 silver badges39 bronze badges
this also works for global operation
:silent g/^$/d'
answered Feb 4, 2022 at 12:51
zzapperzzapper
4,6835 gold badges48 silver badges45 bronze badges
This is using:
-e git://github.com/davidhalter/jedi.git@23f36c86d7d7c5b890fef9eb9eb46cd1fe553329#egg=jedi-dev
"~/demo.py" 15L, 166C
Traceback (most recent call last):
File "/Users/jarvis/.vim/bundle/jedi-vim/plugin/jedi_vim.py", line 69, in complete
script = get_script(source=source, column=column)
File "/Users/jarvis/.vim/bundle/jedi-vim/plugin/jedi_vim.py", line 43, in get_script
return jedi.Script(source, row, column, buf_path, encoding)
File "/Users/jarvis/.virtualenvs/ak-sci-env/src/jedi/jedi/api.py", line 58, in __init__
source = modules.source_to_unicode(source, source_encoding)
File "/Users/jarvis/.virtualenvs/ak-sci-env/src/jedi/jedi/modules.py", line 351, in source_to_unicode
return unicode(source, detect_encoding(), 'replace')
LookupError: unknown encoding:
New culprit looks to be line 58.
Consider this:
#!/bin/bash -
patterns=('pattern1' 'pattern2' 'pattern3' 'pattern4' '...')
for pat in "${patterns[@]}"; do
if ! grep -q -e "$pat" infile; then
((missed++))
printf '%sn' "pattern $pat not found"
fi
done
if [[ -z "$missed" ]]; then
printf '%sn' 'all patterns were found'
else
printf 'Among %d patterns, %d patterns were not foundn' "${#patterns[@]}" "$missed"
fi
Hold all the patterns into an array in patterns=( ... )
, then loop over the patterns in the array and check with grep for the matching of that pattern. If the pattern matches, then quit silently, else report that the pattern wasn’t found and increment the missed
temporary variable by 1.
Outside of the loop we checks if that temporary variable was not set, that means all patterns were found and so reported, else print the count of missed patterns among total patterns.
8 More Discussions You Might Find Interesting
1. AIX
Apache 2.4 directory cannot display «Last modified» «Size» «Description»
Hi 2 all,
i have had AIX 7.2
:/# /usr/IBMAHS/bin/apachectl -v
Server version: Apache/2.4.12 (Unix)
Server built: May 25 2015 04:58:27
:/#:/# /usr/IBMAHS/bin/apachectl -M
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_worker_module (static)
… (3 Replies)
Discussion started by: penchev
3. UNIX for Dummies Questions & Answers
Using «mailx» command to read «to» and «cc» email addreses from input file
How to use «mailx» command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing �To� e-mail address
and column 3 contains �cc� e-mail address to include with same email.
Sample input file, email.txt
Below is an sample code where… (2 Replies)
Discussion started by: asjaiswal
4. UNIX for Dummies Questions & Answers
Egrep confusion with «I» and «-I» pattern
I am executing following command
egrep -w I filename.txt
the filename.txt has following data ….
-I 07-18 08:31:19.924 9880 6 SessionManager ConnectConfig: ConfigurationWebService LoginResults=SuccessfulLogin
I am so hungry that I need to eat
I expect egrep to print only the second… (1 Reply)
Discussion started by: VBG
5. Solaris
The slices «usr», «opt», «tmp» disappeared!!! Help please.
The system don’t boot.
on the screen appears following:
press enter to maintenance (or type CTRL-D to continue)…I checked with format command.
… the slices «0-root»,»1-swap»,»2-backup» exist.
…the slises «3-var»,»6-usr» -unassigned. (16 Replies)
Discussion started by: wolfgang
6. Shell Programming and Scripting
awk command to replace «;» with «|» and «»|» at diferent places in line of file
Hi,
I have line in input file as below:
3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL
My expected output for line in the file must be :
«1-Radon1-cMOC_deg»|»LDIndex»|»3G_CENTRAL|INDONESIA_(M)_TELKOMSEL»|LAST|»SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL»
Can someone… (7 Replies)
Discussion started by: shis100
7. Shell Programming and Scripting
How to distinguish between «command not found» and «command with no result»
system() call imeplemented in solaris is such a way that:
Command not found — return code 1
Command executed successfully without Output — return code 1
how to distinguish between these two based on return code in a c — file?
Can you help on this ? (5 Replies)
Discussion started by: iitmadhu
8. UNIX for Dummies Questions & Answers
Explain the line «mn_code=`env|grep «..mn»|awk -F»=» ‘{print $2}’`»
Hi Friends,
Can any of you explain me about the below line of code?
mn_code=`env|grep «..mn»|awk -F»=» ‘{print $2}’`
Im not able to understand, what exactly it is doing :confused:
Any help would be useful for me.
Lokesha (4 Replies)
Discussion started by: Lokesha
This post aims to clarify the reasons why the ‘Pattern not found’ error occurs when patching Unity.
This error occurs for the following reasons:
- The version of Unity that you want to modify is not supported by the program and when you try to apply the patch it just does not find matches and sends this error.
- Unity is already patched, your version of Unity already has a modification applied and can not find the pattern and therefore can not modify anything.
- You have used some security patch Unity, I have not checked the operation of the same using the security patches, but the software works with chains and not find any automatically send error.
When this error occurs there are some options that you can try to try to solve this error:
- If you had previously applied the patch, you should only create a license, you only have to select the Unity-> Editor folder and press the Create Lic button and a license will be generated according to the version of Unity that is found.
- Verify that the version of Unity is supported by the patch, usually I test the versions of the patch with the latest version that is available.
- Reinstall Unity, this may be the absolute solution to this problem and almost always works to the users who tell me the problem, this leave it for the last one if everything else fails.
I would like to collect more information about this error and know why it is generating so if you like to help me you can take your Unity.exe file and upload it to MEGA and share the link in the comments.
Back to top button