Your way of saying concentrates on the process of walking. One would put it that way if he wanted for example to stress that "he hasn't been walking, but taken a bus instead".
But actually your variant is just silly and I can hardly imagine a situation for it. No offence. If you'd like to say that someone took a bus instead of walking you should rather put it the following way: "Вчера он не ходил в школу пешком, а поехал на автобусе".
"Вчера он шёл не в школу" would be a good sentence meaning that e.g. someone have seen him in the street yesterday as usual but he was heading not in the school but somewhere else.
"Ходить" doesn't necessarily mean to go on a regular basis. It is widely used in many cases (including single movements especially when a prefix is added).
Their meaning is almost the same. Mostly one of them is being preferred in a sentence only due to idiomatic reason. But in general "ходить" means "to walk" and "идти" means "to go". I'm not sure if it's the same in English, but to me first means an act/state of movement, while the second means "to walk to a certain place".
I believe it's like in English. When you read "He did not go to school", it's possible that you'd think of a student who stayed at home for a day, but also a person who for some reason never attended a school. Note that in English "school" can refer to both high schools etc. as well as universities. In Russian, I'm guessing you would specify by saying "он никогда не ходил в школу" (not a native speaker here).
Does ходил not specifically refer to walking? Is there a reason it would be inappropriate to translate it as "walked" here? I thought one of the VoM distinctions we're trying to learn is the means of conveyance, but only "went" and not "walked" is accepted, which suggests I misunderstood.
There is no such thing as specifical reference when you talk about translations. Especially when you talk about general words of movement. There are many idioms in both Russian and English, so you cannot remember one single Russian analogue for each English word and claim that you learnt the language.
As a native Russian I can say that "Ходить в школу" is an idiomatic construction which means the fact of visiting the lessons in school, not the process of walking there. So I think that "walked" is not appropriate translation here.
And could you please specify, what do you mean by "vom distinction"?
VoM - Verbs of Motion, the distinctions I was thinking of being going by foot, going by car, going by plane, etc., as well as multidirectional vs. unidirectional, perfective vs. imperfective.
The Assimil Russian course calls out ходить as specifically meaning on "foot/walking," which led to my question. Thanks.
I wouldn't advise you to use this abbreviation, it's not widely used. Both "ходить" and "идти" are mostly used when speaking of going by foot. Except for case when the subject is inanimate, for example:
- Шёл второй час экзамена - it was the second hour of the exam
- Прошёл слух, что он всё знает - there was a rumor that he'd known everything
- До деревни ходил старый автобус - an old bus commuted to the village
- Дом ходил ходуном - Literally: House quaked (an idiom "ходить ходунОм" means that something is unstable)
"Yesterday" usually (though not always) indicates that you should use past tense ("he went") rather than perfect ("he has gone") because it's usually an event that happened in the past and is not ongoing anymore. It's possible to construe a use of the perfect here if for example him missing school yesterday results in some consequence in the presence that you want to focus on: "he hasn't gone to school, therefore he is not there now". To say he "hasn't gone" somewhere almost always implies that he is not there now. Whereas "he didn't go to school yesterday" says nothing about whether or not he did go to school today. I think (but am not entirely sure) both versions would be a possible translation of this particular Russian sentence but "he didn't go to school yesterday" would be a more common thing to say.
If you are talking about why that is not an acceptable translation in English, it is because you cannot use the present perfect in English to refer to something that happened or was done at a specific time. Present perfect tense is used for something that took place at an unspecified time before the present moment.
In fact, all three perfect tenses are used to refer to something happening at an unspecified time before a "reference time." In the past perfect, the reference time is a point in the past. In the present perfect, the reference time is right now. In the future perfect, the reference time is a point in the future.