Uzupełnienie pojedynczej kolumny?

2

TL; DR: Czy jest możliwe, aby emacs używał uzupełniania jednokolumnowego?


Gdy używasz mechanizmów uzupełniania emacsa i istnieje wiele możliwości, uzupełnienia są wyświetlane w osobnym oknie, np

Possible completions are:
i                                  i-search
i1                                 i18n
i2                                 i3
iar                                ibm
ibm1047                            ibm1047-dos
ibm1047-mac                        ibm1047-unix
ibm437                             ibm437-dos
ibm437-mac                         ibm437-unix
ibm775                             ibm775-dos
ibm775-mac                         ibm775-unix
ibm850                             ibm850-dos
ibm850-mac                         ibm850-unix
ibm851                             ibm851-dos
ibm851-mac                         ibm851-unix
ibm852                             ibm852-dos
ibm852-mac                         ibm852-unix
ibm855                             ibm855-dos
ibm855-mac                         ibm855-unix
ibm857                             ibm857-dos

Chociaż ten format jest w porządku dla kilku elementów, gdy lista ma długie kolejne kolejne wiersze w tej samej linii, tj. Uporządkowane jako

1    2
3    4
5    6

jest raczej rozpraszające. Idealnie wolałbym zamówienie

1    4
2    5
3    6

ale obawiam się, że nie jest to możliwe, ponieważ nie byłoby w stanie obsłużyć uzupełnień, które są szersze niż każda kolumna. Emacs w tym przypadku używa formatu

111  222
33333333
444  5555

który działa tylko z powodu uporządkowania „najpierw w poziomie”; Również moje preferowane zamawianie wymagałoby dostosowania zawartości bufora uzupełniania w zależności od wysokości okna (podobnie niepraktyczne).

Tak więc alternatywnie chciałbym, aby uzupełnienie wykorzystywało tylko jedną kolumnę, tj

Possible completions are:
i                                  
i-search
i1                                 
i18n
i2                                 
i3
iar                                
ibm
ibm1047                            
ibm1047-dos
ibm1047-mac                        
ibm1047-unix
ibm437                             
ibm437-dos
ibm437-mac                         
ibm437-unix

które łatwiej byłoby zeskanować wizualnie.

czy to możliwe?

kdb
źródło
Odpowiedź została zaakceptowana na stronie emacs.stackexchange.com/a/38509 .
Imię

Odpowiedzi:

1

Może chcesz się zmienić completions-format?

Nie ogranicza danych wyjściowych do jednej kolumny, tys. Łatwo byłoby dodać tę funkcję do completion--insert-strings(która jest funkcją wstawiającą uzupełnienia do tego bufora), więc może powinieneś poprosić o tę funkcję jako nową funkcję.

Stefan
źródło
0

Jeśli używasz Sopli, po prostu dostosuj opcję użytkownika icicle-Completions-max-columnsdo wartości 1.

Jeśli nie chcesz zawsze pojedynczej kolumny , możesz stopniowo zmieniać *Completions*wyświetlanie w locie , zmieniając odstęp między kandydatami lub liczbę używanych kolumn.

Rysował
źródło