emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Forcing tab-width to be 8 makes using Python source blocks very diff


From: Ihor Radchenko
Subject: Re: Forcing tab-width to be 8 makes using Python source blocks very difficult
Date: Sat, 16 Mar 2024 11:02:06 +0000

Rudi C <rudiwillalwaysloveyou@gmail.com> writes:

> ... runs `evil-shift-right`, which
> indents the selected region by the `evil-shift-width` amount.
> `evil-shift-width` is set based on `tab-width`.

Are you sure?
I am looking at
https://github.com/emacs-evil/evil/blob/master/evil-vars.el#L175
and it appears that `evil-shift-width' has nothing to do with
`tab-width'. It is a customization with default value of 4.

Also, do note that `evil-shift-width' in python code blocks may break
things when the code block itself is also indented. Org mode normally
discards this common indentation and takes care about distinguishing
(and not merging!) the tabs belonging to the code itself and the
tabs/spaces that are used to indent the whole code block:

     This whole code block is indented
     #+begin_src python
     def foo():
       if True:
         return 1;
     #+end_src

Indentation in Org mode blocks can be tricky and generic editing
commands may not cut it. Org mode itself does the indentation using the
code block's major mode in a separate buffer in order to keep things
consistent.

> ... I solved this specific
> problem by overriding `evil-shift-width` using a timer in an org-mode hook.
> The delay introduced by the timer was necessary, as something kept
> overriding my settings. Perhaps the magic machinery that sets `tab-width`
> in the source blocks can also set `evil-shift-width`. The best-case
> scenario would be to have a list of variables that need to be set from
> their major-mode buffer in the source blocks.

Why not simply setting `evil-shift-width' to 4?

>> May you please provide a detailed example where 8 spaces causes issues?
>
> My lists are still indenting with 2 spaces, so I am not actually seeing 8
> spaces. I have no idea why that is, but I very much like the 2-space
> indentation.
>
> ```
> - a
>   - b
> ```
>
> I see 4 spaces in numerical lists, which again, I have no idea about:
>
> ```
> 1. hi
>    2. hi
>       3. hi
> ```

Org mode aligns child sub-lists with parent item text. So, "-" is right
below "a" and "2." is right below "hi". List depth is not defined by the
absolute number of spaces/tabs.
See https://orgmode.org/manual/Plain-Lists.html

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]