Каково различие между “находкой” и “до” в энергии?

Вы просите "известные обходные решения". Вот простой:

$ date -d "$(echo 20140103T1422 | sed 's/T/ /')"
Fri Jan  3 14:22:00 PST 2014

Это использует sed заменять "T" пространством. Результатом является формат это date понимает.

Если мы добавляем секунды на дату ISO8601, то date требует большего количества изменений:

$ date -d "$(echo 20140103T142211 | sed -r 's/(.*)T(..)(..)(..)/\1 \2:\3:\4/')"
Fri Jan  3 14:22:11 PST 2014

В вышеупомянутом, sed заменяет "T" пространством и также разделяет HHMMSS на HH:MM:SS.

2
08.01.2015, 02:02
2 ответа

Единственное различие между ними - это позиция курсора. Из :help motion.txt:

                                                  f
f{char}             To [count]'th occurrence of {char} to the right. The                                                         
                    cursor is placed on {char} inclusive.                                                                         
                    {char} can be entered as a digraph digraph-arg.                                                               
                    When 'encoding' is set to Unicode, composing                                                                  
                    characters may be used, see utf-8-char-arg.                                                                   
                    :lmap mappings apply to {char}.  The CTRL-^ command                                                           
                    in Insert mode can be used to switch this on/off                                                              
                    i_CTRL-^.                                                                                                     

                                                   F                                                                             
F{char}             To the [count]'th occurrence of {char} to the left.                                                           
                    The cursor is placed on {char} exclusive.                                                                     
                    {char} can be entered like with the f command.                                                                

                                                   t                                                                             
t{char}             Till before [count]'th occurrence of {char} to the                                                            
                    right.  The cursor is placed on the character left of                                                         
                    {char} inclusive.                                                                                             
                    {char} can be entered like with the f command.                                                                

                                                   T                                                                             
T{char}             Till after [count]'th occurrence of {char} to the                                                             
                    left.  The cursor is placed on the character right of                                                         
                    {char} exclusive.                                                                                             
                    {char} can be entered like with the f command.
1
27.01.2020, 22:00

Да, основное различие между ними - это положение курсора, как вы сказали.

Это удобно, например, когда вы хотите удалить или изменить некоторые символы. Предположим, у вас есть следующая строка:

print "Hello, world!\n"; exit

Предположим, вы хотите изменить все до точки с запятой. Для этого перейдите в начало строки ( ^ ), а затем c измените все t без точки с запятой.

Если вместо этого вы хотите удалить первую команду и просто оставить exit , вы бы d удалили все, вставив f точку с запятой.

Короче говоря, f и t - это то, что vim называет командами движения. Они помогают модифицировать оператора перед собой. Когда вы перемещаете оператор с помощью f , он работает со всеми символами между текущей позицией курсора до , включая символ, на который вы переместились с помощью f . Если вы вместо этого выберете t , ваш оператор будет работать со всем, от текущей позиции до , исключая персонажа, на которого вы указали t .

3
27.01.2020, 22:00

Теги

Похожие вопросы