Here's one approach:
(defun isearch-exit-mark-match ()
"Exit isearch and mark the current match."
(define-key isearch-mode-map (kbd "<C-return>") #'isearch-exit-mark-match)
This binds a different key (C-return) to exit the current isearch and also leave the last ...
Actually for org-table-copy-region it isn't necessary to mark the exact column width! Just mark the beginning of the column somewhere in a cell, then the end by going down the required number of rows and do C-c C-x M-w (for M-x o-t-c-r).
Then go to another cell, where you want to add the column and do C-c C-x C-y (for M-x org-table-paste-rectangle).
avy already supports what you want. See avy-dispatch-alist.
However, the default actions are not enough. I have the following function in my config (here it copies a sexp, but you can change it to copy a line):
(defun my-avy-action-copy-and-yank (pt)
"Copy and yank sexp starting on PT."
Then assign a key to the function ...
There’s no simple variable you can set to control this, but you can do it with some programming if you want.
There is a variable called redisplay-highlight-region-function whose value is a function to be called whenever the region needs to be shown. It creates an overlay that applies the region face to the selection (or moves it to a new start/end positions ...
At first, note that pdf-sync binds mouse-double-1 in the minor mode pdf-sync-minor-mode to pdf-sync-backward-search-mouse. So one should probably only bind it in a minor mode that can be deactivated again.
The following code defines a minor mode pdf-sel-mode that binds mouse-double-1 to a new command pdf-sel-mouse. pdf-sel-mouse selects the word below the ...
Hopefully StarBug gave you an answer to your literal question about stuff between newlines.
Your clarification suggests that you are actually looking for org-element-context.
That function gives you the org element at point which can be a source block.
The returned element has properties like its bounds (:begin and :end) and its contents (:value).
Two rules to take into account when solving your problem:
Do not persistently mess up the syntax table if you do not see through all the consequences. It is used for many tasks.
Do not advice forward-word to solve your problem. It is also used for many tasks you do not aprehend at the first look.
But, what you can do is rebinding the keys for forward-char ...
Library Isearch+ lets you do that easily, and even toggle it on/off on the fly.
Non-nil option isearchp-set-region-flag automatically sets the region (selection) around the last search target when you quit isearch.
Command isearchp-toggle-set-region, bound to M-s M-SPC during isearch toggles option isearchp-set-region-flag.
The transient-mark-mode-hook is called when you enter/leave the Transient Mark Mode, which is enabled by default starting from Emacs 23. Only when it's enabled, setting the mark will activate it and highlight the region.
You could try the following code.
,@(let ((m (make-sparse-keymap)))
(define-key m (kbd ...
The two commands org-table-select-col and org-table-copy-col in the following lisp code allow the selection and the copying of the current table column. You can bind it to the key of your liking and/or insert it via easy-menu-define-key into org-tbl-menu.
(defun org-table-goto-col-beginning ()
"Go to beginning of current column and return `point'."
cute-jumpers answer is perfectly functional. If you want to bind the action to another key rather than use avy's internal dispatch process then the following adapted code works quite well:
(defun my-avy-paste-word (char)
"Paste a word selected with avy."
(interactive (list (read-char "char:" t)))
(let ((avy-action #'avy-action-copy))
The following is based on Tobias's answer but use Advising instead:
(define-advice kill-ring-save (:around (old-fun &rest args) highlight)
"Save the text selection and keep the selection highlight."
(apply old-fun args)))
If you need to undo it, use
(advice-remove 'kill-ring-save 'kill-ring-save@highlight)
The function kill-ring-save-keep-selection defined in the following emacs-lisp snippet works like kill-ring-save but keeps the selection. I've bound it to M-W in contrast to M-w for kill-ring-save.
`(defun kill-ring-save-keep-selection (&rest args)
"Just like `kill-ring-save' with arguments ARGS but keep selection."
Use M-| (shell-command-on-region) then sh to pipe the current region to Bash. It works because bash supports running program from STDIN, e.g.,
~ $ echo 'date' | sh
Mon Feb 25 21:54:51 CST 2019
M-| runs via a fresh shell every time, so I'm not sure if it can work in your case.
Let me just preface this by saying that I am not very familiar with spacemacs except for the fact that it is similar to vim so I might be missing emacsy solutions. That being said, a friend of mine who uses spacemacs tested these suggestions for me and has confirmed that they work.
You can just use the exact sequence you have been using but replace the s ...
After looking into VIM documentation, I found a way to do this which works in evil-mode too. See Visual select current search result.
gn selects the highlighted text, after pressing this you can operate on the selection.
Pressing n. repeats the operation on the next match.
Note that you may use gn in place of w in many operations.
cgn can be used to change ...
You need to say that this command is a navigation command, by replacing your
C-h o interactive RET explains that:
If the string begins with ^ and shift-select-mode is non-nil,
Emacs first calls the function handle-shift-selection.
Here is a function that returns the text between two surrounding blank lines:
(defun region-between-surrounding-blank-lines ()
(let ((beg nil) (end nil))
(re-search-backward (rx bol (* blank) eol))
(setq beg (point))
(re-search-forward (rx bol (* blank) eol))
(setq end (- (...
One can easily define a new command that displays a buffer with a given substring in its name.
There are some conceptional things to consider:
It may be that none of the living buffers has the substring in its name. The example code bails out in that case.
There may be multiple buffers with that substring in their name. The example code selects one of ...
Not built in but another package for this is called objed (I'm the author). You can mark any text object with m the point is moved to the next object of current type automatically. Unmark any object by navigating to it and press m again. Here is an example screencast:
I don't know why, but now it works as expected. Must have been some error before. This is the working version:
(setq auto-insert-query nil)
'(((ess-mode . "R script") nil
"# R script " \n
"# File: " (file-name-nondirectory buffer-file-name) "\n"
"# Author: me " \n
Org mode adds the org-date face to the timestamps, so you should be
able to use the following to select the timestamp at point.
(defun your-mark-org-timestamp ()
(when (eq (get-text-property (point) 'face) 'org-date)
(let ((beg (previous-property-change (point) nil (line-beginning-position)))
(end (next-property-change (point)...
The original poster has indicated (in a comment) a desire "to create a highlighted region, so that [he/she] can copy or cut the region (i.e., the timestamp)". The following function returns the timestamp at point without permanently moving point to that location. The user can modify this function to do things like (kill-new ts) to put the timestamp into ...
Please consult the documentation for replace-string (you get the doc with C-h f replace-string RET). The Section on the arguments START and END clearly says how to reproduce the interactive behavior in elisp functions:
Operates on the region between START and END (if both are nil, from point
to the end of the buffer). Interactively, if Transient Mark ...
Posting own answer which mostly works as I'd like (needed some special consideration for evil mode).
While it works well for basic usage, errors will also replace the selection,
ideally a nonzero exit code would display as a message instead of putting the error into the editor.
;; See: https://emacs.stackexchange.com/a/34900/2418
;; Wrapper for 'shell-...