In less, can you search using / for a pattern that contains a carriage return and newline? I know your pattern can end with a line using $ (from How do I include newlines in a search in less?), but I need the pattern to match text that spans multiple lines.

I tried \n, but that only searches for the n character.

  • Have you tried \n+ for 1 or more newlines? – Brock Hensley Jan 17 '14 at 1:45
  • Which Linux distribution, and do you have defined the environment variable "LESS" ? – harrymc Feb 23 '15 at 12:59
  • @harrymc How would that help with multiline search? – sashoalm Feb 25 '15 at 18:54
  • Gathering information. – harrymc Feb 25 '15 at 19:29
  • 2
    This is not possible, based on a review of the source code for less (search.c:search_range()). The search/match operation is performed on a single newline-delimited line at a time, so you cannot match across line boundaries. See line.c:forw_raw_line() for the implementation of "readline" as called by search_range. – zackse Feb 26 '15 at 5:50

It is not possible to match across line boundaries, because the search function in less operates on a single newline-delimited line at a time. This is the case regardless of the system regex implementation (GNU, POSIX, PCRE, etc.).

Please note that I couldn't find an official source repository for the mainline development of less, but for purposes of code review here, the links that follow are from the FreeBSD contrib tree.

See search.c:search_range() for the implementation of the search operation. The loop therein calls line.c:forw_raw_line() to retrieve the next newline-delimited block of content. That block is passed to match.c:match_pattern() where the search pattern (regular expression) is executed.

To match across multiple lines, you'll need to use a different tool. One option is to drop into your editor and use its search capabilities as suggested by others. You can invoke the editor by pressing v in less.


Not sure how to do it in less, but you can accomplish the same in vim.



The atom \\_. finds any character including end-of-line. The multi \\{-} matches as few as possible.

  • 1
    This does not answer the question, however, since it is about less, not vim. It should be a comment. – sashoalm Feb 22 '15 at 6:47
  • 1
    @sashoalm It's still an attempt to answer, so I'd vote it down, and move on. People searching for a solution may not be bound to use one tool specifically. – slhck Feb 22 '15 at 13:50

less is using ed regex syntax and it does not support multiline matching unfortunately.


I was hoping to find that as well, or at least find if this syntax bit was used in less:

RE_DOT_NEWLINE If this bit is set, then the match-any-character operator matches a newline; if this bit isn’t set, then it doesn’t.

So I can use .+ pattern to match newlines. But no, it doesn't.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.