summaryrefslogtreecommitdiff
path: root/runtime/doc/quickfix.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/quickfix.txt')
-rw-r--r--runtime/doc/quickfix.txt69
1 files changed, 60 insertions, 9 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index a40cb9e49..26e2e7e88 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 7.1. Last change: 2007 May 10
+*quickfix.txt* For Vim version 7.2a. Last change: 2008 Mar 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -141,8 +141,11 @@ command with 'l'.
current window is used instead of the quickfix list.
*:cq* *:cquit*
-:cq[uit] Quit Vim with an error code, so that the compiler
+:cq[uit][!] Quit Vim with an error code, so that the compiler
will not compile the same file again.
+ WARNING: All changes in files are lost! Also when the
+ [!] is not used. It works like ":qall!" |:qall|,
+ except that Vim returns a non-zero exit code.
*:cf* *:cfile*
:cf[ile][!] [errorfile] Read the error file and jump to the first error.
@@ -159,12 +162,12 @@ command with 'l'.
the location list.
-:cg[etfile][!] [errorfile] *:cg* *:cgetfile*
+:cg[etfile] [errorfile] *:cg* *:cgetfile*
Read the error file. Just like ":cfile" but don't
jump to the first error.
-:lg[etfile][!] [errorfile] *:lg* *:lgetfile*
+:lg[etfile] [errorfile] *:lg* *:lgetfile*
Same as ":cgetfile", except the location list for the
current window is used instead of the quickfix list.
@@ -229,15 +232,15 @@ command with 'l'.
current window is used instead of the quickfix list.
*:cgete* *:cgetexpr*
-:cgete[xpr][!] {expr} Create a quickfix list using the result of {expr}.
+:cgete[xpr] {expr} Create a quickfix list using the result of {expr}.
Just like ":cexpr", but don't jump to the first error.
*:lgete* *:lgetexpr*
-:lgete[xpr][!] {expr} Same as ":cgetexpr", except the location list for the
+:lgete[xpr] {expr} Same as ":cgetexpr", except the location list for the
current window is used instead of the quickfix list.
*:cad* *:caddexpr*
-:cad[dexpr][!] {expr} Evaluate {expr} and add the resulting lines to the
+:cad[dexpr] {expr} Evaluate {expr} and add the resulting lines to the
current quickfix list. If a quickfix list is not
present, then a new list is created. The current
cursor position will not be changed. See |:cexpr| for
@@ -246,7 +249,7 @@ command with 'l'.
:g/mypattern/caddexpr expand("%") . ":" . line(".") . ":" . getline(".")
<
*:lad* *:laddexpr*
-:lad[dexpr][!] {expr} Same as ":caddexpr", except the location list for the
+:lad[dexpr] {expr} Same as ":caddexpr", except the location list for the
current window is used instead of the quickfix list.
*:cl* *:clist*
@@ -280,6 +283,21 @@ If vim is built with |+autocmd| support, two autocommands are available for
running commands before and after a quickfix command (':make', ':grep' and so
on) is executed. See |QuickFixCmdPre| and |QuickFixCmdPost| for details.
+ *QuickFixCmdPost-example*
+When 'encoding' differs from the locale, the error messages may have a
+different encoding from what Vim is using. To convert the messages you can
+use this code: >
+ function QfMakeConv()
+ let qflist = getqflist()
+ for i in qflist
+ let i.text = iconv(i.text, "cp936", "utf-8")
+ endfor
+ call setqflist(qflist)
+ endfunction
+
+ au QuickfixCmdPost make call QfMakeConv()
+
+
=============================================================================
2. The error window *quickfix-window*
@@ -434,6 +452,7 @@ lists, use ":cnewer 99" first.
5. The errorfile is read using 'errorformat'.
6. If vim was built with |+autocmd|, all relevant
|QuickFixCmdPost| autocommands are executed.
+ See example below.
7. If [!] is not given the first error is jumped to.
8. The errorfile is deleted.
9. You can now move through the errors with commands
@@ -481,6 +500,25 @@ the screen and saved in a file the same time. Depending on the shell used
If 'shellpipe' is empty, the {errorfile} part will be omitted. This is useful
for compilers that write to an errorfile themselves (e.g., Manx's Amiga C).
+
+Using QuickFixCmdPost to fix the encoding ~
+
+It may be that 'encoding' is set to an encoding that differs from the messages
+your build program produces. This example shows how to fix this after Vim has
+read the error messages: >
+
+ function QfMakeConv()
+ let qflist = getqflist()
+ for i in qflist
+ let i.text = iconv(i.text, "cp936", "utf-8")
+ endfor
+ call setqflist(qflist)
+ endfunction
+
+ au QuickfixCmdPost make call QfMakeConv()
+
+(Example by Faque Cheng)
+
==============================================================================
5. Using :vimgrep and :grep *grep* *lid*
@@ -751,6 +789,18 @@ work, because Vim is then running in the same process as the compiler and
stdin (standard input) will not be interactive.
+PERL *quickfix-perl* *compiler-perl*
+
+The Perl compiler plugin doesn't actually compile, but invokes Perl's internal
+syntax checking feature and parses the output for possible errors so you can
+correct them in quick-fix mode.
+
+Warnings are forced regardless of "no warnings" or "$^W = 0" within the file
+being checked. To disable this set g:perl_compiler_force_warnings to a zero
+value. For example: >
+ let g:perl_compiler_force_warnings = 0
+
+
PYUNIT COMPILER *compiler-pyunit*
This is not actually a compiler, but a unit testing framework for the
@@ -1379,7 +1429,8 @@ by Vim.
*errorformat-Perl*
In $VIMRUNTIME/tools you can find the efm_perl.pl script, which filters Perl
error messages into a format that quickfix mode will understand. See the
-start of the file about how to use it.
+start of the file about how to use it. (This script is deprecated, see
+|compiler-perl|.)