From: Patrick W. <jed...@pd...> - 2004-09-30 09:42:25
|
Dima There is a macro that might help you with this--jEdit'ers, please comment and improve! > > Something I just noticed in jEdit 4.1: if I click Search - Replace All > it'll > happily use the last values entered in Find dialog box! I had previousl= y > searched for 'c' so it simply deleted all the c's from the file. Generally, I've found that decisions like this--UI behavior--have been se= t for awhile they way they are after long discussion when they were first developed. That is to say, they generally won't be changed just on one request. I have no opinion on the subject. Here is a macro that *might* do what you want--it will prompt first then run the replace all. TO OTHER MACRO WRITERS: please comment if you have improvements or fixes--I'm not familiar with the SearchAndReplace class, this was based o= n a recorded macro. Dima--Save this macro to your /macros directory, either where settings ar= e saved for your user id, or in the JEdit installation directory (if you save in the JEdit install directory you will need to copy it over when a new version is installed). Then use Shortcuts to assign a shortcut to it, or run it from the Macros menu. Patrick // Macro to prompt before replacing all occurrences of a string in the // current buffer. Used because Search/Replace All does not prompt. // // This uses the *most recent* search and replace settings. These setting= s // are NOT specific to the current buffer in this script. // // Patrick Wright 30-09-2004 searchFor =3D SearchAndReplace.getSearchString(); replaceWith =3D SearchAndReplace.getReplaceString(); prompt =3D "Replace all occurrences of \n" + searchFor + "\n" + "with\n" + replaceWith + "?"; r =3D Macros.confirm(view, prompt, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); if ( r =3D=3D JOptionPane.YES_OPTION ) { SearchAndReplace.setSearchString(searchFor); SearchAndReplace.setReplaceString(replaceWith); SearchAndReplace.setBeanShellReplace(SearchAndReplace.getBeanShellReplac= e()); SearchAndReplace.setIgnoreCase(SearchAndReplace.getBeanShellReplace()); SearchAndReplace.setRegexp(SearchAndReplace.getRegexp()); SearchAndReplace.setSearchFileSet(new CurrentBufferSet()); SearchAndReplace.setIgnoreCase(SearchAndReplace.getIgnoreCase()); SearchAndReplace.replaceAll(view); Toolkit.getDefaultToolkit().beep(); } |